pandas 如何防止resample ->aggregate删除列?

woobm2wo  于 2022-12-16  发布在  其他
关注(0)|答案(2)|浏览(100)

代码

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被删除了。

ttygqcqt

ttygqcqt1#

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
dsekswqp

dsekswqp2#

df.resample('d').agg({'A':'mean','B':'mean'})

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

相关问题