Python熊猫-合并数据帧行
我使用熊猫来显示数据帧,我的df看起来是这样的:Python熊猫-合并数据帧行,python,pandas,dataframe,Python,Pandas,Dataframe,我使用熊猫来显示数据帧,我的df看起来是这样的: Day Hour Name Msg sunday 10 a b sunday 11 a b sunday 11 a b monday 12 a b tuesday 10 a b tuesday 10 a b 现在我想总结
Day Hour Name Msg
sunday 10 a b
sunday 11 a b
sunday 11 a b
monday 12 a b
tuesday 10 a b
tuesday 10 a b
现在我想总结一下:
sunday 3
monday 1
tuesday 2
把这些数据放在一个数据框里,这样我就能画出来了
知道我该怎么做吗?谢谢大家! 我想你需要的是聚合
然后,如果需要,绘制:
如果订单od天数很重要,请将列日期
转换为:
如果不想使用categorical
,另一种解决方案是通过cat
:
cat = ['sunday','monday','tuesday']
df.groupby('Day').size().reindex(cat).plot.bar()
plt.show()
很好,但是有一个稍微简单一点的方法:
df.Day.value\u计数()
收益率:
sunday 3
tuesday 2
monday 1
Name: Day, dtype: int64
它们从大到小依次排列,这有助于避免丢失东西。
如果希望它们按给定顺序排列,请重新索引到原始顺序:
df.Day.value_counts().reindex(df.Day.unique())
给予:
sunday 3
monday 1
tuesday 2
Name: Day, dtype: int64
您也可以按自己喜欢的方式订购,为.reindex()
提供一个自定义列表
对于打印,您可以执行以下操作:
df.Day.value_counts().plot.bar()
或
用于:
谢谢你,尽管我不理解
的“有序分类”
到底是什么?从你提供的url我无法理解。对不起,这是一个错误的链接。因此,在groupby之后,您将从days
中获得名为index
的第一列,并对其进行字母数字排序。但如果需要自定义排序,如按周天数排序,则需要创建有序类别,然后在列表中按值的顺序排序cat
df.Day.value_counts().reindex(df.Day.unique())
sunday 3
monday 1
tuesday 2
Name: Day, dtype: int64
df.Day.value_counts().plot.bar()
df.Day.value_counts().plot.bar(figsize=(2,2))