pandas在groupby之后在另一列上绘制列的不同值

2024-09-28 01:29:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在图上画两个折线图,x轴是月份,y轴是每个城市每个月的计数。在

我每月做一个分组,以得到每个城市的计数。在

我的df:

city month 
A      1
A      2
A      2
B      2
B      3
C      3

df['city'].groupby(df['month']).size().plot()

我想看到两个折线图,一个是A,一个是B,每个月在x轴上。在

上面的代码只给出了每个月的累加值,但我想要一个每个城市的明细表。在

enter image description here

我怎么能有两个不同的城市列值折线图?在


Tags: 代码citydfsizeplot计数groupby月份
1条回答
网友
1楼 · 发布于 2024-09-28 01:29:42

我相信您需要使用groupbywith size进行计数和整形,最后一个过滤列(城市)按subset进行:

df.groupby(['month', 'city']).size().unstack(fill_value=0)[['A','B']].plot()

类似:

^{pr2}$

对于plot,可以省略子集[[]]。在

如果需要过滤器顶部计数:

top = df['city'].value_counts().head(2).index
df.query('city in @top').groupby(['month', 'city']).size().unstack(fill_value=0).plot()

相关问题 更多 >

    热门问题