在Pandas中如何将datetime类型数据转换为mm/yyyy年月格式
方法1:直接转换为mm/yyyy格式字符串
使用datetime列的dt.strftime方法即可直接生成你需要的格式:
df['month_year'] = df['Date/Time Opened'].dt.strftime('%m/%Y')
参数说明:
%m代表两位数字表示的月份(如9月会显示为09)%Y代表四位数字表示的年份(如2014年显示为2014)
转换后你可以直接用新列month_year分组统计频次:
# 统计每个月的记录数 freq = df.groupby('month_year')['month_year'].count()
注意:该方法生成的是字符串类型,直接排序会出现顺序错乱问题(比如
12/2014会排在01/2015之后),如果需要保持时间顺序推荐用第二种方法。
方法2:使用时期对象(推荐用于统计、绘图场景)
你可以先将日期转换为月度时期对象,完成统计后再格式化输出为mm/yyyy,既能保证时间顺序正确,统计效率也更高:
# 按年月分组统计计数 monthly_count = df.groupby(df['Date/Time Opened'].dt.to_period('M')).size() # 将索引转换为mm/yyyy格式用于绘图展示 monthly_count.index = monthly_count.index.strftime('%m/%Y')
统计完成后直接调用绘图方法即可生成统计图表:
# 绘制月度频次柱状图 monthly_count.plot(kind='bar', xlabel='月份', ylabel='记录数')
内容的提问来源于stack exchange,提问作者Tejas Gupta
相关产品推荐
相关产品推荐

