按组计算行中值之间的差异

我有df这样的:

http://img.mukewang.com/60c9a14f0001f06d05310234.jpg

我需要计算X1, X2, X3, X4 and X5每家公司之间的差异,但我只知道如何计算整列之间的差异。


df['dX1'] = df['X1'].shift(-1) - df['X1']

df['dX2'] = df['X2'].shift(-1) - df['X2']

df['dX3'] = df['X3'].shift(-1) - df['X3']

...

这是不好的做法,因为它是从其减去X1上线74与X1上线73(这是2家不同的公司,这是没有意义的)。


我的问题是,如何计算每个时期和每个公司的行值之间的差异。例如

http://img1.mukewang.com/60c9a15c0001266f06070319.jpg

(我可以一个一个加载 csvs 并计算每个公司的差异,然后将所有合并到一个列表中,但需要 2 天,因为我有 700 个 csv 文件)。


POPMUISE
浏览 140回答 1
1回答

梵蒂冈之花

我认为你需要DataFrameGroupBy.diff:cols = ['X1','X2','X3','X4','X5'] df1 = df.groupby('company')[cols].diff(-1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python