Python 熊猫每分钟的日期直方图
我试图用pandas绘制一个简单的日期柱状图(只需计算每N分钟发生的次数)。 然而,我所能达到的最佳效果如下:Python 熊猫每分钟的日期直方图,python,pandas,plot,histogram,date-histogram,Python,Pandas,Plot,Histogram,Date Histogram,我试图用pandas绘制一个简单的日期柱状图(只需计算每N分钟发生的次数)。 然而,我所能达到的最佳效果如下: import pandas as pd df = pd.read_csv('mydata.csv',sep=' ',usecols=[0,1]) df.columns = ['smdate', 'smtime'] df= pd.to_datetime(df['smtime']) print(df) df.groupby(df.dt.minute).count().plot(kind=&
import pandas as pd
df = pd.read_csv('mydata.csv',sep=' ',usecols=[0,1])
df.columns = ['smdate', 'smtime']
df= pd.to_datetime(df['smtime'])
print(df)
df.groupby(df.dt.minute).count().plot(kind="bar",figsize=(50,10))
样本输出:
0 2020-07-07 00:00:07.538
1 2020-07-07 00:00:09.278
2 2020-07-07 00:00:09.292
3 2020-07-07 00:00:10.682
4 2020-07-07 00:00:14.198
...
262516 2020-07-07 15:54:44.056
262517 2020-07-07 15:54:44.270
262518 2020-07-07 15:54:44.450
262519 2020-07-07 15:54:44.697
262520 2020-07-07 15:54:45.210
Name: smtime, Length: 262521, dtype: datetime64[ns]
密谋
我的问题是如何将我的帧进行最佳分组(即10-20分钟)?
还有,绘制这么多事件的最佳方法是什么,这样我就可以在上面提到的时间间隔内(每N分钟)看到它们?我想你在找熊猫。
它允许您指定所需的任何频率或间隔 以下是一个间隔10分钟的工作示例:
import pandas as pd
df = pd.read_csv('mydata.csv',sep=';',usecols=[0,1])
df.columns = ['smdate', 'smtime']
df['smtime'] = pd.to_datetime(df['smtime'])
df.groupby(pd.Grouper(key='smtime', freq='10Min')).count().plot(kind="bar",figsize=(50,10))
在这里,我保留了最初的数据帧结构;我无法让它处理datetime Series对象(Grouper函数尝试处理索引而不是序列值)。我尝试了axis参数,但没有成功。如果有人能直接用这个系列来改进我的答案,我会很高兴不起作用示例:
import pandas as pd
df = pd.read_csv('mydata.csv',sep=';',usecols=[0,1])
df.columns = ['smdate', 'smtime']
df = pd.to_datetime(df['smtime'])
df.groupby(pd.Grouper(freq='10Min')).count().plot(kind="bar",figsize=(50,10))
我没有答案,但您可能会创建一个新列,其中包含一些值,指示哪个间隔(即1:第一个间隔、2:下一个间隔等等)和groupby。至于可视化,我不确定,但一旦你把它分组,应该很容易找到解决方案。