我有一个以日期为列的 dataframe
。我想平均每天到每月的值。我已经尝试过 Time Grouper 和 Resample,但它不喜欢列名是字符串,我似乎可以弄清楚如何将列变成类似 DatetimeIndex
的东西。
我的起始数据框:
import pandas as pd
df = pd.DataFrame(data=[[1,2,3,4],[5,6,7,8]],
columns=['2013-01-01', '2013-01-02', '2013-02-03', '2013-02-04'],
index=['A', 'B'])
期望输出:
2013-01-01 2013-02-01
A 1.5 3.5
B 5.6 7.5
最佳答案
您可以使用 resample
df.columns = pd.to_datetime(df.columns)
df.T.resample('M').mean().T
Out[409]:
2013-01-31 2013-02-28
A 1.5 3.5
B 5.5 7.5
或
groupby
一axis=1
df.groupby(pd.to_datetime(df.columns).to_period('M'),1).mean()
Out[412]:
2013-01 2013-02
A 1.5 3.5
B 5.5 7.5
关于python - Pandas 在日期列上重新采样,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47704702/