Python熊猫-合并数据帧行

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 现在我想总结

我使用熊猫来显示数据帧,我的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
现在我想总结一下:

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))