现在我已经开始学习熊猫了几天,以便可以对收到的大数据集进行一些分析。
我的目标是:
1。可视化每分钟的扫描计数。 (x =时间,y =总扫描次数)
2。使图表上的每分钟扫描可视化。 (x =时间,y =该分钟的扫描次数)
如果还不清楚,请告诉我,我将尽力重新解释。
我创建了一个由两列组成的新DataFrame:扫描类型和时间
$ df.head()
Scan Type Time
0 Mobile Multi Reject 13:32:00
1 Mobile Multi Reject 13:33:00
2 Mobile Multi Reject 13:33:00
3 Barcode Reject 13:34:00
4 Barcode Entry 13:34:00
数据类型如下:
$ df.dtypes
Scan Type object
Time object
dtype: object
下一步是将Time对象转换为datetime:
$ df['Time'] = pd.to_datetime(df['Time'], format='%H:%M:%S')
$ df.dtypes
Scan Type object
Time datetime64[ns]
dtype: object
然后我按照这个答案https://stackoverflow.com/a/21333244/1067213来根据计数显示数据并得到以下信息:
问题1:时间显示错了,我不明白它是什么时间。该图似乎是正确的,因为预期的峰值时刻和扫描流与预期的峰值时刻(通过经验)相匹配。
问题2:我无法根据时间显示总扫描量。
在此先感谢您提供更多信息,以便更加清晰明了或有任何疑问,我们将尽力澄清或提供更多信息。
编辑:这正是我用来可视化数据的代码:
data = pd.read_excel("Scanlog.xlsx")
df = pd.DataFrame(data, columns=['Scan Type', 'Time'])
df['Time'] = pd.to_datetime(df['Time'], format="%H:%M:%S", errors="coerce")
df.groupby([df['Time']]).count().plot(style=".", figsize=(15, 4))
编辑2-问题1的解决方案 经过一番研究,我发现缺少的部分是dt.time:
df['Time'] = pd.to_datetime(df['Time'], format="%H:%M:%S", errors="coerce").dt.time
现在时间显示正确了。