问题是这样,我有一个像这样的数据框:
A B C D
2 3 X 5
7 2 5 7
1 2 7 9
3 4 X 9
1 2 3 5
6 3 X 8
我希望遍历数据帧的行,并且每次C = X列都想重置一个计数器,并开始将B列中的值相加直到C = X列。然后洗净然后重复排直到完成。
当前,我正在使用.iterrows()遍历各行,比较C列,然后按程序添加到变量中。
我希望有一种更有效的类似“熊猫”的方法来做这样的事情。
答案 0 :(得分:0)
按如下所述使用cumsum()
。
import pandas as pd
df = pd.DataFrame({"B":[3, 2, 2, 4, 2, 3],
"C":["X", 5, 7, "X", 3, "X"]})
df['C'].loc[df['C'] == "X"] = df['B'].loc[df['C'] == "X"].cumsum()
输出为
B C
0 3 3
1 2 5
2 2 7
3 4 7
4 2 3
5 3 10