代码之家  ›  专栏  ›  技术社区  ›  dejanmarich

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

  •  2
  • dejanmarich  · 技术社区  · 8 年前

    我有 df 这样地:

    enter image description here

    我需要计算 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 (这是两个不同的公司,毫无意义)。

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

    enter image description here

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

    1 回复  |  直到 8 年前
        1
  •  3
  •   jezrael    8 年前

    DataFrameGroupBy.diff :

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