![](/img/trans.png)
[英]how can I predict for each row in the dataframe by iterating through the rows?
[英]How can I maintain a dataframe's structure when iterating through each row(currently converting df to series)?
我似乎无法弄清楚这一点 - 我有一个数据框,我试图在每一行上迭代,但是当我迭代时,它正在将我的数据框转换为一个系列。
df = pd.DataFrame(np.random.rand(5, 5)*10, columns=list('ABCDE')).astype(int)
for index, row in df.iterrows():
print(row['A'],row['B'] )
print("Row shape - ", row.shape)
print("Row type - ", type(row))
print("DF shape - ", df.shape)
print("DF type - ", type(df))
0 1
6 1
6 4
9 6
6 2
Row shape - (5,)
Row type - <class 'pandas.core.series.Series'>
DF shape - (5, 5)
DF type - <class 'pandas.core.frame.DataFrame'>
我试过 to_frames 但没有用:
print("row after to frame ", row.to_frame().shape)
row after to frame (5, 1)
我的问题是,我需要一次将它发送到一个函数(因此使用 iterrows()),并且需要它保留与我是 iterrows 的数据帧相同的结构。
当我将它发送到另一个函数时的问题(使用现有的缩放器进行转换),它拒绝它,因为它的形状与数据帧不同。 所以在我的例子中,对于每一行,我想以这样的形状发送它 (1, 5) 而不是 (5,)。
那可能吗?
您可以使用转置,例如在您的代码中:
print("row after to frame ", row.to_frame().T.shape)
输出将根据需要采用 (1,5) 的形状。 但是,正如 Grayrigel 在评论中所津津乐道的那样,推荐的方法是使用 apply 函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.