gpt4 book ai didi

python - 对列进行分组,列是对象列表,但会导致错误: unhashable type: 'numpy.ndarray'

转载 作者:行者123 更新时间:2023-12-03 08:45:43 24 4
gpt4 key购买 nike

我有一个这样的数据框。列“端口”是项目列表,我想groupby列“端口”:

df1
Out[107]:
model port
0 1 [a, b, c, d, e, f]
1 2 [e, r, t, u, y, y]
2 3 [d, f, g, h, j, u]
3 4 [a, b, c, d, e, f]
4 5 [e, r, t, u, w, y]
5 6 [b, c, j, k, n, v]

我正在使用此代码进行分组:
df1.groupby(['port'])['model'].sum()

它给出一个错误:
TypeError: unhashable type: 'numpy.ndarray'

哪里不对了?我搜索了此错误,但找不到适用于这种情况的任何内容。

最佳答案

您需要将port列转换为可哈希的类型。例如,您可以使用tuple而不是np.ndarray。像这样:

df1.port = df1.port.map(tuple)

如果您确实需要在其余时间中使用 port列来具有数组,则可以执行此操作而无需修改原始数组:

df1.assign(port=df.port.map(tuple)).groupby("port").model.sum()

关于python - 对列进行分组,列是对象列表,但会导致错误: unhashable type: 'numpy.ndarray' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54893140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com