由绘图组成的pandas数据框架

时间:2018-05-20 20:45:38

标签: python pandas

使用pandas,如何在一个索引列中按季度和年份对日期时间进行分组?

我可以通过以下方式对日期进行分组:df.groupby(by=[df.index.year, df.index.quarter])。但是,由于它创建了两列,因此在尝试创建时间序列图时出现错误,我无法弄清楚如何解决此问题。

以下是一个例子:

df0 = pd.DataFrame({'date':['2016-1-1', '2016-4-1', '2016-7-1', '2016-10-1', '2017-1-1', '2017-4-1', '2017-7-1', '2017-10-1'], 
               'value':[32141,1234,2134,2134,1234,2134,213,1234]})

df0['date'] = pd.to_datetime(df0['date'], format="%Y-%m-%d")
df0.index = df0['date']
df0 = df0.groupby(by=[df0.index.year, df0.index.quarter]).sum()

df0

enter image description here

1 个答案:

答案 0 :(得分:1)

我在这里猜测,但也许您正在寻找应用transform()来保留行。试试这个例子:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({
    'dates':pd.date_range(start='2018-01-01', end='2018-12-31'),
    'i': np.arange(365)
}).set_index('dates')

df.groupby(by=[df.index.year, df.index.quarter]).mean().plot(kind='bar')
df.groupby(by=[df.index.year, df.index.quarter]).transform('mean').plot()

返回:

enter image description here