我正在寻找一种完成以下任务的快速方法:
假设我有以下数据框:
value
index
1 'a'
2 'b'
3 'c'
4 'd'
我想将其扩展到以下数据框:
value cum_value
index
1 'a' []
2 'b' ['a']
3 'c' ['a', 'b']
4 'd' ['a', 'b', 'c']
解决问题的最有效方式是什么?
最佳答案
将列转换为值列表并移位。这会使第一个元素变为NaN,但是我们可以使用df.at将此值更改为空列表。
df = pd.DataFrame(['a', 'bb', 'hi mom', 'this is a test'])
df[1] = df[0].apply(lambda x: [x]).shift()
df.at[0,1] = []
df[1] = df[1].cumsum()
print(df)
0 1
0 a []
1 bb [a]
2 hi mom [a, bb]
3 this is a test [a, bb, hi mom]