如何迭代Pandas数据帧行&在每次迭代中创建一个数据帧

时间:2018-02-01 13:59:50

标签: python

我有一个pandas数据框gmat。示例数据类似于

YEAR  student score mail_id      phone            Loc
2012  abc     630   abc@xyz.com  1-800-000-000   pqr
2012  pqr     630   pqr@xyz.com  1-800-000-000   abc

我想迭代这个数据框架&从for循环和放大器中的数据帧的行创建数据帧。使用该数据帧进行计算.for循环中的每次迭代都将使用迭代中的当前行覆盖先前的数据帧。例如,for循环中的第一个数据框看起来像

YEAR  student score mail_id      phone            Loc
2012  abc     630   abc@xyz.com  1-800-000-000   pqr
覆盖第一行后的

和第二个数据帧看起来像

YEAR  student score mail_id      phone            Loc
2012  pqr     630   pqr@xyz.com  1-800-000-000   abc

所以我尝试了以下代码

for row in gmat.iterrows():
    
    df=pd.DataFrame(list(row))

但在检查时我发现df没有正确填充。它只显示2列 你能建议我怎么做吗?

我也根据Georgy的建议尝试了这个,我使用了for index, row in gmat.iterrows()。在这里,我将行作为pd.Series,然后我使用gmrow=pd.DataFrame(row)但我的原始数据的列标题将作为行。数据我得到了 YEAR 2012 student abc score 630 mail_id abc@xyz.com phone 1-800-000-000 Loc pqr

1 个答案:

答案 0 :(得分:5)

您可以像这样对数据帧进行切片:

for index, row in gmat.iterrows(): x = df[index:index+1] print("print iterations:",x)

print只是一个例子。您可以使用x

进行所需的转换