如何按年份和日期分组,并在 pandas 中汇总总和

有人可以告诉我如何找到每月收入,对其进行排序并可视化吗?

  Month&Year  |   Monthly Revenue

0   2016-11   |   261.9600

1   2016-11   |   731.9400

2   2016-06   |   14.6200

3   2015-10   |   957.5775

4   2015-10   |  22.3680

9989    2014-01  |  25.2480

9990    2017-02  |   91.9600

9991    2017-02  |  258.5760

9992    2017-02  |   29.6000

9993    2017-05  |   243.1600

如何显示不同年份各个月份的收入总和


慕仙森
浏览 175回答 1
1回答

临摹微笑

查看内嵌评论pandas.to_datetime.dt存取器pandas.Series.dt.yearpandas.Series.dt.monthpandas.DataFrame.groupby聚合pandas.DataFrame.plot.barhimport pandas as pdimport matplotlib.pyplot as plt# setup dataframedata = {'Month&Year': ['2016-11', '2016-11', '2016-06', '2015-10', '2015-10', '2014-01', '2017-02', '2017-02', '2017-02', '2017-05'],        'Monthly Revenue': [261.96, 731.94, 14.62, 957.5775, 22.368, 25.248, 91.96, 258.576, 29.6, 243.16]}df = pd.DataFrame(data)# convert the Month&Year column to a datetime columndf['Month&Year'] = pd.to_datetime(df['Month&Year'], format='%Y-%m')# use the .dt accessor to groupby year and month and sum Monthly Revenuedfg = df.groupby([df['Month&Year'].dt.year, df['Month&Year'].dt.month]).agg({'Monthly Revenue': sum})# rename the index columnsdfg.index = dfg.index.set_names(['year', 'month'])# display(dfg)            Monthly Revenueyear month                 2014 1              25.24802015 10            979.94552016 6              14.6200     11            993.90002017 2             380.1360     5             243.1600# plotdfg.plot.barh(figsize=(8, 5), legend=False)plt.xlabel('Revenue')plt.xscale('log')plt.show()或者不是按yearand分组month,而是 groupby date。# groupby dfg = df.groupby(df['Month&Year'].dt.date).agg({'Monthly Revenue': sum})# plotdfg.plot.barh(figsize=(8, 5), legend=False)plt.xlabel('Revenue')plt.ylabel('Date')plt.xscale('log')plt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python