嗨,我的数据集如下
username switch_state time
abcd sw-off 07:53:15 +05:00
abcd sw-on 07:53:15 +05:00
现在使用此功能,我需要确定在给定的一天中,一天中有多少次操作了开关状态,即打开还是关闭。我的测试代码如下所示
switch_off=df.loc[df['switch_state']=='sw-off']#only off switches
groupy_result=switch_off.groupby(['time','username']).count()['switch_state'].unstack#grouping the data on the base of time and username and finding the count on a given day. fair enough
此groupby子句的结果为
print(groupy_result)
username abcd
time
05:08:35 3
07:53:15 3
07:58:40 1
现在您可以看到,时间列中的计数是串联的。我需要将它们分开,以便可以使用Seaborn散点图进行绘制。我需要有x和y值,在我的情况下将是x = time,y = count 请帮我解决如何绘制此列。
`
答案 0 :(得分:1)
您可以尝试以下操作以本身DataFrame
的形式获取数据
df = df.loc[df['switch_state']=='sw-off']
df['count'] = df.groupby(['username','time'])['username'].transform('count')
这两行代码将为您提供一个更新的数据框df
,它将添加一个名为count
的列。
df = df.drop_duplicates(subset=['username', 'time'], keep='first')
以上行将删除重复的行。然后可以绘制df['time']
和df['count']
。
plt.scatter(df['time'], df['count'])