【问题标题】:Calculate difference between values in rows by group按组计算行中值之间的差异
【发布时间】:2019-02-17 03:23:39
【问题描述】:

我有这样的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']
...

这是一种不好的方法,因为它在74 上用X173 上减去X1(这是两个不同的公司,这没有任何意义)。

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

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

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我觉得你需要DataFrameGroupBy.diff:

    cols = ['X1','X2','X3','X4','X5']
    df1 = df.groupby('company')[cols].diff(-1)
    

    【讨论】:

    • 会检查,只是想要diff(-1),因为最后一行应该是无,tnx
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多