python - 如何在pandas python中转换列中的行并执行操作

标签 python pandas dataframe

我有一个像这样的 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/

相关文章:

python - 改进具有多行的交互式 Altair 折线图的选项

dataframe - 如何在执行 spark dataframe.write().insertInto ("table"时确保正确的列顺序)?

python - 转换 pandas 系列和日期时间对象

python - 在数组边界上切片 ndarrays

python - 带参数的 Django ManyToManyField 过滤器?

python - 将新的日期时间添加到具有值的日期时间索引 Pandas 数据框

python - 有条件聚合 Pandas DataFrame

python - 如何在 Keras 模型的开头添加层?

python - 如果文本有 <br/>,lxml 无法获取元素中的所有文本?

python - 当重复的行具有不同的值时,如何将它们合并为 DataFrame 上的一个