在Python TypeError中按列计数时出错:只能将整数标量数组转换为标量索引

在Python TypeError中按列计数时出错:只能将整数标量数组转换为标量索引,python,pandas,Python,Pandas,我想计算每小时重复的行数 我的数据帧: hour index name 08:00:00 1442 x 08:45:00 3434 y 08:30:00 1442 x 08:00:00 1442 x 08:45:00 3434 y 08:00:00 1442 x 我的代码:我尝试按小时对数据进行分组并计数。转换没有帮助 df_cou

我想计算每小时重复的行数

我的数据帧:

 hour         index    name    
08:00:00      1442       x
08:45:00      3434       y
08:30:00      1442       x
08:00:00      1442       x
08:45:00      3434       y
08:00:00      1442       x
我的代码:我尝试按小时对数据进行分组并计数。转换没有帮助

df_count= df.groupby('hour')[['index','name']].count()
这就是错误:

TypeError: only integer scalar arrays can be converted to a scalar index
这是我想要的输出:

 hour         index    name   count  
08:00:00      1442       x       3
08:30:00      1442       x       1
08:45:00      3434       y       2

我不确定你的数据是怎么回事。当我这样设置一个时:

df=pd.DataFrame({
“小时”:[“08:00:00”、“08:45:00”、“08:30:00”、“08:00:00”、“08:45:00”、“08:00:00]”,
"索引":[1442,3434,1442,1442,3434,1442],,
'name':['x','y','x','x','y','x'],
})
然后,您的代码就可以正常工作了(它不会做您想要的事情,但运行时不会出现问题):

>>df.groupby('hour')[[['index','name']]].count()
索引名
时辰
08:00:00      3     3
08:30:00      1     1
08:45:00      2     2
在任何情况下,一旦修复了数据帧内容,以下内容都会得到预期的结果:

df.groupby(['hour','index','name']).size() 小时索引名 08:00:00 1442 x 3 08:30:00 1442 x 1 08:45:00 3434 y 2
您还可以添加:
。到_frame('count')。如果愿意,可以重置_index()

我不确定您的数据发生了什么。当我这样设置一个时:

df=pd.DataFrame({
“小时”:[“08:00:00”、“08:45:00”、“08:30:00”、“08:00:00”、“08:45:00”、“08:00:00]”,
"索引":[1442,3434,1442,1442,3434,1442],,
'name':['x','y','x','x','y','x'],
})
然后,您的代码就可以正常工作了(它不会做您想要的事情,但运行时不会出现问题):

>>df.groupby('hour')[[['index','name']]].count()
索引名
时辰
08:00:00      3     3
08:30:00      1     1
08:45:00      2     2
在任何情况下,一旦修复了数据帧内容,以下内容都会得到预期的结果:

df.groupby(['hour','index','name']).size() 小时索引名 08:00:00 1442 x 3 08:30:00 1442 x 1 08:45:00 3434 y 2
您还可以添加:
。到_frame('count')。如果愿意,可以重置_index()

要获取每个组中的元素数,只需使用df.groupby(“hour”).size()@tanglef它不起作用。我也犯了同样的错误。但我希望整排都有清晰的内容,而不仅仅是时间。我在问题中添加了我要查找的输出。好的,然后到groupby multiple columns,您可以在groupby中给出列名称的列表。@tanglef相同的错误-这就是我试图运行df_count=df.groupby(['hour','index','name'])。size()列的数据类型是什么?您可以粘贴代码来重建精确的数据帧吗?要获得每个组中的元素数,只需使用df.groupby(“hour”).size()@tanglef它不起作用。我也犯了同样的错误。但我希望整排都有清晰的内容,而不仅仅是时间。我在问题中添加了我要查找的输出。好的,然后到groupby multiple columns,您可以在groupby中给出列名称的列表。@tanglef相同的错误-这就是我试图运行df_count=df.groupby(['hour','index','name'])。size()列的数据类型是什么?你能粘贴代码来重建精确的数据帧吗?谢谢!我修复了该列类型的问题,并且您的代码正常工作。谢谢!我修复了列类型的问题,您的代码正常工作。