【问题标题】:How to combine diagonal data?如何合并对角线数据?
【发布时间】:2022-11-18 18:03:54
【问题描述】:

我是 python 的新手,如果我没有很好地解释或提供部分解决方案,我深表歉意......

我有一个数据框如下:一个键,一些日期(按行分布)和许多其他列(相同的键,相同的值)

Key Date 1 Date 2 Date 3 Column X Column Y
Key 1 2022-01-01 X11111111 Y11111111
Key 1 2022-01-02 X11111111 Y11111111
Key 1 2022-01-03 X11111111 Y11111111
Key 2 2022-12-01 X22222222 Y22222222
Key 2 2022-12-02 X22222222 Y22222222
Key 2 2022-12-03 X22222222 Y22222222

我想像下面这样聚合它们,其中日期是聚合的,其他列保持不变

Key Date 1 Date 2 Date 3 Column X Column Y
Key 1 2022-01-01 2022-01-02 2022-01-03 X11111111 Y11111111
Key 2 2022-12-01 2022-12-02 2022-12-03 X22222222 Y22222222

最有效的方法是什么?谢谢你。

我已经尝试过正常的数据透视和聚合但没有按我想要的那样工作......

【问题讨论】:

    标签: python pandas dataframe pivot aggregate


    【解决方案1】:

    假设空单元格是NaN,使用groupby.first

    out = df.groupby('Key', as_index=False).first()
    

    注意。如果空单元格是空字符串,请使用df.replace('', float('nan')).groupby('Key', as_index=False).first()

    输出:

         Key      Date 1      Date 2      Date 3   Column X   Column Y
    0  Key 1  2022-01-01  2022-01-02  2022-01-03  X11111111  Y11111111
    1  Key 2  2022-12-01  2022-12-02  2022-12-03  X22222222  Y22222222
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多