如何迭代熊猫数据框以在每次迭代中获取多行

我有一个熊猫数据框。


DF.shape = (13096,27)

我想迭代数据框,每次迭代我都使用shape of (50, 25). 我的意思是 25,前 25 列。


我使用以下代码完成了它:


for i in test_df.iterrows():

        df1 = test_df.iloc[:50, 0:25]

        df1 = np.array(df1)


        seq_test_array = df1[newaxis, :, :]

        print('df1', seq_test_array.shape)


        #a = np.arange(10)

        #for i in np.nditer(seq_test_array):

        predictions = model.predict_classes(seq_test_array,verbose=1, batch_size=50)

        fig_verify = plt.figure(figsize=(5, 5))

        plt.plot(predictions, color="blue")

        plt.plot(predictions, color="green")

        plt.title('prediction')

        plt.ylabel('value')

        plt.xlabel('row')

        plt.show()


        print('predictions', predictions)

        preds = model.predict(seq_test_array)

        print('preds', preds)

        prediction = np.argmax(preds)

        print('prediction', prediction)

我展示了这个数字,但它们是空的。与预测、pred 值相同(打印结果):


predictions [[1]]

preds [[0.9416911]]

prediction 0

df1 (1, 50, 25)

是因为我的代码错误吗?


请你帮助我好吗 ?谢谢


白板的微信
浏览 59回答 1
1回答

幕布斯6054654

你可以尝试这样的事情:sliced=50  for i in range(0,len(df)-(sliced-1),sliced):    subdf=df.iloc[i:i+sliced,df.columns[:-2]]    ....    #the rest of your code 所以,例如:import numpy as npimport pandas as pdN_rows=6N_cols=5df = pd.DataFrame(np.zeros((N_rows, N_cols)))print(df)sliced=2for i in range(0,len(df)-(sliced-1),sliced):    subdf=df.iloc[i:i+sliced,df.columns[:-2]]    print(subdf)    print(subdf.shape)输出:df     0    1    2    3    40  0.0  0.0  0.0  0.0  0.01  0.0  0.0  0.0  0.0  0.02  0.0  0.0  0.0  0.0  0.03  0.0  0.0  0.0  0.0  0.04  0.0  0.0  0.0  0.0  0.05  0.0  0.0  0.0  0.0  0.0Iterations:     0    1    20  0.0  0.0  0.01  0.0  0.0  0.0(2, 3)     0    1    22  0.0  0.0  0.03  0.0  0.0  0.0(2, 3)     0    1    24  0.0  0.0  0.05  0.0  0.0  0.0(2, 3)(2,3)因此,正如您所看到的,每次迭代都采用it means的形式(sliced, len(df.columns)-2),因此在您的情况下它将是(50, 25)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python