当前位置: 首页 > 知识库问答 >
问题:

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

苏坚成
2023-03-14

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

我的数据帧:

 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

共有1个答案

秦城
2023-03-14

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

df = pd.DataFrame({
    'hour': ['08:00:00', '08:45:00', '08:30:00', '08:00:00', '08:45:00', '08:00:00'],
    'index': [1442, 3434, 1442, 1442, 3434, 1442],
    'name': ['x', 'y', 'x', 'x', 'y', 'x'],
})

然后你的代码工作正常(它不做你想要的,但它运行没有问题):

>>> df.groupby('hour')[['index','name']].count()
          index  name
hour                 
08:00:00      3     3
08:30:00      1     1
08:45:00      2     2

在任何情况下,一旦修复了数据帧内容,以下内容都会得到预期的结果:

>>> df.groupby(['hour', 'index', 'name']).size()
hour      index  name
08:00:00  1442   x       3
08:30:00  1442   x       1
08:45:00  3434   y       2

您还可以添加:。到帧(“计数”)。如果愿意,请重置索引()。

 类似资料: