我有一个像这样的 pandas 数据框。
Date Strike_price value
1/1/18 10000 55
1/1/18 10100 40
1/1/18 10200 37
1/1/18 10300 25
2/1/18 10000 52
2/1/18 10100 38
2/1/18 10200 33
2/1/18 10300 21
3/1/18 10000 58
3/1/18 10100 43
3/1/18 10200 39
3/1/18 10300 26
我想从中创建一个新的数据框,如下所示:
1/1/18 27 # 27 == 55 - 40 + 37 - 25
2/1/18 26
3/1/18 28
我尝试使用df.pivot_table('value', ['Date'], 'Strike_Price')
,它将执行价格转换为列,但随后我无法删除或过滤掉DF 中的任何特定列。
有人可以帮我解决这个问题吗?
最佳答案
给定
>>> df
Date Strike_price value
0 1/1/18 10000 55
1 1/1/18 10100 40
2 1/1/18 10200 37
3 1/1/18 10300 25
4 2/1/18 10000 52
5 2/1/18 10100 38
6 2/1/18 10200 33
7 2/1/18 10300 21
8 3/1/18 10000 58
9 3/1/18 10100 43
10 3/1/18 10200 39
11 3/1/18 10300 26
你可以发布
>>> df.groupby('Date')['value'].agg(lambda s: s[::2].sum() - s[1::2].sum())
Date
1/1/18 27
2/1/18 26
3/1/18 28
Name: value, dtype: int64
或者,您可能更喜欢
>>> df.groupby('Date', as_index=False)['value'].agg(lambda s: s[::2].sum() - s[1::2].sum())
Date value
0 1/1/18 27
1 2/1/18 26
2 3/1/18 28
关于python - 如何在pandas python中转换列中的行并执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53621048/