我有一个包含两列'a'和'b'的数据框,其中'b'是'a'的值与前一个'a'的值之差。
df = pd.DataFrame({'a': [10, 60, 30, 80, 10]})
df['b'] = df['a']-df['a'].shift(1)
a b
0 10 NaN
1 60 50.0
2 30 -30.0
3 80 50.0
4 10 -70.0
我想创建一个名为'c'的新列,其中包含“a”之前的值和当前的“a”值(例如,[60,30]),仅当列'b'为负数时。否则,它必须是当前值'a'本身的列表。
最终输出应如下所示:
a b c
0 10 NaN [10]
1 60 50.0 [60]
2 30 -30.0 [60, 30]
3 80 50.0 [80]
4 10 -70.0 [80, 10]