【问题标题】:How to prevent resample -> aggregate from dropping columns?如何防止 resample -> aggregate 掉列?
【发布时间】:2022-12-14 12:01:37
【问题描述】:

代码

df = pd.DataFrame(
    data = {'A': [1, 1, 2], 'B': [None, None, None]},
    index = pd.DatetimeIndex([
        '1990-01-01 00:00:00',
        '1990-01-01 12:00:00',
        '1990-01-02 12:00:00'
    ])
)
print(df.resample('1d').aggregate('mean'))

输出

              A
1990-01-01  1.0
1990-01-02  2.0

期望的输出

              A     B
1990-01-01  1.0  None 
1990-01-02  2.0  None 

我不在乎输出的 B 列中是否有 Nonenp.nanpd.NA,问题是 B 被删除了。

【问题讨论】:

标签: python pandas pandas-resample


【解决方案1】:

resample 将在使用数字聚合时删除非数字列。聚合后可以reindex

df.resample('1d').aggregate('mean').reindex(df.columns, axis=1)

输出:

              A   B
1990-01-01  1.0 NaN
1990-01-02  2.0 NaN

【讨论】:

    【解决方案2】:
    df.resample('d').agg({'A':'mean','B':'mean'})
    
              A   B
    1990-01-01  1.0 NaN
    1990-01-02  2.0 NaN
    

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2017-08-10
      • 2019-03-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多