Pandas Groupby相差2或更多列

时间:2018-11-26 14:03:24

标签: lambda multiple-columns pandas-groupby

我正在尝试计算如下所示的pandas数据框中2列的差。它分为3组,我正在尝试按组明智地执行以下操作。

M1 = High - Close
M2 = High - previous days close
M3 = Low - previous days close

enter image description here

基本上,我正在使用lambda函数来执行以下操作:

df['M1'] = df.groupby(['Commodity']).apply(lambda x: x['High'] - 
x['Low']).reset_index()

M2 = lambda x: x['High'] - x['Close'].shift(1)
df['M2'] = df.groupby(['Commodity']).apply(M2).reset_index()

df['M3'] = df.groupby(['Commodity'])['Low'] - df.groupby(['Commodity']) 
['Close'].shift(1)

(显然)我尝试了不同的选择,但它们似乎都不起作用。

所需的输出如下: enter image description here

任何帮助将不胜感激。预先感谢您的协助。

0 个答案:

没有答案