【发布时间】:2019-10-07 16:11:23
【问题描述】:
我正在尝试从批量生产过程中汇总来自各种传感器的数据,以便使用 pandas.groupby().agg({}) 函数将其与最终产品相匹配。
为了方便起见,因为我们还不确定如何最好地总结某些属性,所以我想对某些属性使用“描述”功能。其他属性需要几个聚合函数,例如['最小','最大']。
问题在于,当在同一个字典中提供时,pandas 似乎无法在同一个分组操作中执行这两个操作。
小例子:
df = pd.DataFrame({'Sensor_1': [1, 2, 3, 4, 5, 6, 5, 4, 3, 3, 2],
'Sensor_2': [2, 2, 3, 3, 7, 6, 9, 2, 2, 1, 1],
'Batch': [1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2]})
我现在可以使用 groupby 运算符执行以下分组:
df.groupby('Batch').agg({'Sensor_1': 'mean',
'Sensor_2': 'describe'})
我也可以像这样分组:
df.groupby('Batch').agg({'Sensor_1': ['mean', 'min'],
'Sensor_2': 'max'})
但是,定义如下:
df.groupby('Batch').agg({'Sensor_1': ['mean', 'min'],
'Sensor_2': 'describe'})
引发以下错误:
TypeError: 无法连接“class 'dict'”类型的对象;只有 pd.Series、pd.DataFrame 和 pd.Panel(已弃用)obj 有效
有谁知道为什么会发生这种情况以及如何解决这个问题?
我将 Jupyter Hub 与 Python 3.6.8 和 Pandas 版本 0.23.0 一起使用
【问题讨论】:
标签: python pandas pandas-groupby