【发布时间】:2020-01-07 16:30:00
【问题描述】:
我有一个数据框,其中一些单元格包含多个值的列表,如下所示:
import pandas as pd
df = pd.DataFrame(
{'category': [[x,y,z],[x],[y,z],[x,z]]
'value': [20,30,20,10]
}
)
df
Out[10]:
category value
0 [x, y, z] 20
1 [x] 30
2 [y, z] 20
3 [x, z] 10
我想按 category 列中的唯一元素对数据进行分组,并捕获每个元素的计数和该元素所在的 value 的平均值。
预期输出应如下所示:
count mean
x 3 20
y 2 20
z 3 16.7
我比较熟悉简单的 groupby 函数,并且能够创建一个独特元素的平面列表(即 [x,y,z])。但是,我不确定如何使用该平面列表按上述要求转换数据。非常感谢您的帮助!
【问题讨论】:
-
你能解释一下为什么最后一个平均值是 18.5
-
我的错误。键盘上的手指很滑。相应更新
标签: python pandas dataframe pandas-groupby