非常简单的熊猫问题,我是初学者。
我有一个数据框'df',例如:
import pandas as pd
df = pd.DataFrame({'time': ['2019-04-23 10:21:00', '2019-04-23 11:14:00', '2019-04-24 11:30'],
'category': ['A', 'B', 'A'],
'text': ['njrnfrjn','fmrjfmrfmr','mjrnfjrnmi']})
我只想:
谢谢
您可以尝试以下操作:
df.groupby([df.time.dt.floor('d'), "category"]).size().unstack().plot()
说明:
groupby
在groupby
中,因为我们需要按天对groupby
进行分组,所以一种解决方案是在times
列上使用dt.floor
。我们为dt.floor
传递参数time
。
"d"
,days
列必须为floor
。如果不是,请使用time
与time series
进行转换。现在我们有了组,可以使用pd.to_datetime
方法轻松计算size。
下一步是将pd.to_datetime
列(在此步骤中作为索引)转换为列。因为我们用两个键groupby,所以我们可以使用pd.to_datetime(df.time)
。
最后,将size
称为数据帧。由于数据框结构良好,因此无需任何参数即可工作(每列绘制一行,索引列(size
)用作x轴。
完整代码+插图:
category
输出: