使用每日数据从Pandas数据框中获取业务monthend值

时间:2015-07-15 14:19:53

标签: python pandas

我是Python的新手,我有一个数据框,我是通过Pandas中的read_sql函数对Postgresql数据库的查询创建的,如下所示:

df = pd.read_sql(sql, conn, parse_dates={'asof_date'},index_col=    ['asof_date']).

返回的数据有三列,它们是每日数据:

asof_date       id        data_value
2013-01-02      xxx       15.6
2013-01-03      xxx       15.9
2013-01-04      xxx       15.3
....
2015-06-29      xxx       14.075
2015-06-30      xxx       15.00

现在,我正在尝试对此数据进行重新采样,以便只返回业务monthend值,如果我这样做:

df.resample('BM')

ID(非数字)列自动下降,如果我重新将id列重新打包,就像发布的其他一些问题所示,它会给我一个错误。我一直在尝试各种帖子所建议的不同组合,但仍然没有运气。如果有人能够对此有所了解,我将不胜感激。非常感谢。

1 个答案:

答案 0 :(得分:0)

我用于此问题的模式是pivot表格,因此您只能将日期作为索引。这将允许resample功能起作用。

pd.pivot_table(df, index='asofdate',columns='id').resample('BM').stack().reset_index()

然后,您可以stack dataframe并重置索引,将字段id作为列重新显示。