3 回答

TA贡献1876条经验 获得超7个赞
关于矢量化解决方案的建议
ndf = pd.DataFrame({'a':np.repeat(df.cost_col.values, df.names_col.str.len()),
'b':np.concatenate(df.names_col.values)})
产量
a b
0 3 milk
1 3 eggs
2 3 cookies
3 5 water
4 5 milk
5 5 yogurt
6 7 cookies
7 7 diaper
8 7 yogurt
然后就是普通groupy+mean
ndf.groupby('b').mean()
a
b
cookies 5
diaper 7
eggs 3
milk 4
water 5
yogurt 6

TA贡献1877条经验 获得超6个赞
IIUC将您的列表弄平(嵌套)
pd.DataFrame(data=df.cost_col.repeat(df.names_col.str.len()).values,index=np.concatenate(df.names_col.values)).mean(level=0)
Out[221]:
0
milk 4
eggs 3
cookies 5
water 5
yogurt 6
diaper 7

TA贡献1765条经验 获得超5个赞
Set()是删除重复项的最简单答案。
* list_name表示法用于扩展/解压缩列表。
l = [["milk", "eggs", "cookies"],
["water", "milk", "yogurt"],
["cookies", "diaper", "yogurt"]]
c = set([*l[0], *l[1], *l[2]])
{'cookies', 'eggs', 'diaper', 'yogurt', 'water', 'milk'}
并将其用作您的熊猫列名称。您可以根据需要使用list()将其转换回列表
添加回答
举报