我正在尝试对"flag"== 2的"value"进行累加,并将这些累加值添加到"flag"== 1和丢弃的flag 2行的连续行中。
- 输入**
Index_Date flag value
========================
2020-01-31 1 10
2020-02-01 2 5
2020-02-02 1 10
2020-02-03 2 5
2020-03-04 1 20
- 预期产出**
Index_Date flag value
========================
2020-01-31 1 10
2020-02-02 1 15
2020-03-04 1 30
通过迭代得到了上述结果。
import pandas as pd
df = df.sort_values(by=['Index_Date'])
adjustments = 0
for index, row in df.iterrows():
if row['flag'] == 2:
adjustments += row['value']
else:
row['value'] += adjustments
df.drop(df[df['flag'] == 2].index, inplace = True)
有没有一种方法可以不用迭代就实现这个目标?谢谢。
2条答案
按热度按时间xxls0lw81#
试试看:
输出:
hi3rlvi22#
输出: