在日期列上重新采样

在日期列上重新采样

本文介绍了Pandas 在日期列上重新采样的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个以日期为列的 dataframe.我想平均每天到每月的值.我已经尝试过 Time Grouper 和 Resample,但它不喜欢列名是字符串,我似乎可以弄清楚如何将列变成 DatetimeIndex 之类的东西.

I have a dataframe with dates as columns. I'd like to average the values from daily to a monthly level. I've tried with Time Grouper and Resample, but it doesn't like the columns names are strings and I can seem to figure out how to make columns into something like a 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

这篇关于Pandas 在日期列上重新采样的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 23:10
查看更多