我有df这样的:
我需要计算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']
...
Run Code Online (Sandbox Code Playgroud)
这是不好的方法,因为它是在线X1减去74X173相减(这是两家不同的公司,这没有意义)。
我的问题是,如何计算每个时期和每个公司的行值之间的差异。例如
(我可以逐一加载 csv 并计算每个公司的差异,然后将所有内容合并到一个列表中,但这需要 2 天,因为我有 700 个 csv 文件)。
我认为你需要DataFrameGroupBy.diff:
cols = ['X1','X2','X3','X4','X5']
df1 = df.groupby('company')[cols].diff(-1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7053 次 |
| 最近记录: |