迭代DataFrame行并在匹配之后添加新行

时间:2019-06-05 13:36:32

标签: python pandas dataframe

我正在尝试使用if条件迭代DataFrame行,并在匹配条件之后立即添加新行

for (index,row) in T.iterrows():
   if xxxx:
      ## add a new row right after current row

1 个答案:

答案 0 :(得分:0)

您可以这样做,但是速度很慢,如果有人提供更好的解决方案,请多加赞赏。

    a       b
0   0.75    2.0
1   0.25    2.5
2   0.25    1.0
3   0.75    1.5
4   0.75    3.0
5   0.25    3.5
rows = []
for i, r in df.iterrows():
    rows.append(r)
    # let's b > 2 is the condition
    if r['b'] > 2:
        rows.append(pd.Series({'a': 1, 'b': 0}))
pd.DataFrame(rows).reset_index(drop=True)
    a       b
0   0.75    2.0
1   0.25    2.5
2   1.00    0.0
3   0.25    1.0
4   0.75    1.5
5   0.75    3.0
6   1.00    0.0
7   0.25    3.5
8   1.00    0.0