【问题标题】:Why does the date format change after aggregating a dataframe?为什么聚合数据框后日期格式会发生变化?
【发布时间】:2021-08-26 05:23:18
【问题描述】:

我有一个数据框,我试图按几列分组,然后聚合其余部分以显示唯一值列表。

例如df =

A1 A2 A3 A4 A5
A11 A21 A31 A41 01/02/2021
A11 A22 A32 A42 nan
A13 A23 A3 A43 01/02/2021

表演后

df = df.groupby(['A1']).agg(set)

数据框变为df =

A1 A2 A3 A4 A5
A11 A21, A22 A31, A32 A41, A42 {'1612376000000000','nan'}
A13 A23 A33 A43 {'1612376000000000',}

而且很难将日期格式改回原来的格式。有没有办法解决这个问题?

【问题讨论】:

  • 你的熊猫版本是什么?对我来说工作得很好。
  • 我的熊猫版本是 1.1.3 @jezrael
  • 有点老了,(October 5, 2020) - link,可以升级吗?
  • 嗨@jezrael,我已经将它更新到 1.3.2 并重新启动了我的内核,但我仍然无法获得正确的日期格式:-(
  • 啊我找到问题了!!这是因为我在将 np.nan 替换为 'nan' 之前有一步,它改变了数据类型,导致格式错误

标签: python pandas dataframe


【解决方案1】:

对我来说工作得很好,列表使用:

df['A5'] = pd.to_datetime(df['A5'])

df = df.groupby(['A1']).agg(lambda x: list(set(x)))
print (df)
             A2          A3          A4                          A5
A1                                                                 
A11  [A21, A22]  [A31, A32]  [A41, A42]  [NaT, 2021-01-02 00:00:00]
A13       [A23]       [A33]       [A43]       [2021-01-02 00:00:00]

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    相关资源
    最近更新 更多