我想以我的Dataframe为例,将日期作为月度数据的索引,并计算每个月的实例,然后将其存储在新的数据框中。
数据:
Date Title
2001-05-22 A
2001-05-28 B
2001-06-13 C
2001-06-14 D
2001-06-15 E
2001-07-15 F
2001-07-13 G
2001-07-16 H
2001-07-17 I
. .
. .
. .
2001-12-01 Y
2001-12-31 Z
所以我希望输出应该是这样的: 带有列的新数据框
Date Count
2001-05-31 2
2001-06-30 3
2001-07-31 4
2001-08-30 1
. .
. .
然后,将数据绘制为任何图形(条形或对于此类数据看起来很好的图形),并将日期作为x轴。
注意:数据属于长期(2001-2017),因此x轴不应重叠。
答案 0 :(得分:1)
您可以在将Date
设置为日期时间格式后使用pd.Grouper
:
从您的数据框开始:
>>> df
Date Title
0 2001-05-22 A
1 2001-05-28 B
2 2001-06-13 C
3 2001-06-14 D
4 2001-06-15 E
5 2001-07-15 F
6 2001-07-13 G
7 2001-07-16 H
8 2001-07-17 I
9 2001-12-01 Y
10 2001-12-31 Z
设置为日期时间和groupby
月:
df['Date'] = pd.to_datetime(df['Date'])
df.groupby(pd.Grouper(key='Date', freq='m')).count()
输出:
Title
Date
2001-05-31 2
2001-06-30 3
2001-07-31 4
2001-08-31 0
2001-09-30 0
2001-10-31 0
2001-11-30 0
2001-12-31 2
要进行绘图,您可以将其用作骨架(我真的不知道您在绘图中寻找的内容):
df['Date'] = pd.to_datetime(df['Date'])
gb = df.groupby(pd.Grouper(key='Date', freq='m')).count()
import matplotlib.pyplot as plt
plt.bar(gb.index, gb.Title)
plt.ylabel('count')
plt.xticks(rotation=90)
plt.tight_layout()
答案 1 :(得分:1)