gpt4 book ai didi

python - 从列表中删除重复项 - "TypeError: ' 系列的对象是可变的,因此无法对它们进行哈希处理。”

转载 作者:行者123 更新时间:2023-12-01 08:19:28 25 4
gpt4 key购买 nike

我一直收到“TypeError:'Series'对象是可变的,因此它们无法被散列。”虽然我明白这意味着什么,但我似乎无法找到解决方案。我尝试将系列转换为元组(如下所示),因为元组是不可变的。我收到同样的错误消息。知道如何解决这个问题吗?

import pandas as pd

data_file = pd.read_csv("file:///C:/Users/carte/OneDrive/Desktop/TEST.csv")

Jordan = []
Carter = []
Reece = []
Liam = []
Bryce = []
David = []

Jordan = data_file['Jordan']
Carter = data_file['Carter']
Reece = data_file['Reece']
Liam = data_file['Liam']
Bryce = data_file['Bryce']
David = data_file['David']

invite = []
invite.append(Carter)
invite.append(Jordan)
invite.append(Reece)
invite.append(David)
invite.append(Liam)
invite.append(Bryce)

tuple(invite)

invite = list(dict.fromkeys(invite))
print(invite)

对于某些上下文,我的代码应该获取每个列表中的所有名称,并在最后打印单个列表之前删除重复项。

最佳答案

正如 Makoto 所说,问题不在于邀请的类型,而在于邀请的内容类型。看起来您正在尝试解压 pandas.Series 的每个实例以填充列表,然后再使用 dict.fromkeys() 进行重复数据删除。为此,您应该使用 list.extend() 而不是 list.append()。前者扩展一个列表,其中包含其参数内的所有元素,而后者将一个新元素添加到列表中( Difference between append vs. extend list methods in Python )。例如:

invite = []
invite.extend(Carter)
invite.extend(Jordan)

您可能还需要手动将 pandas.Series 转换为列表,如下所示:

invite = []
invite.extend(Carter.to_list())
invite.extend(Jordan.to_list())

请注意,在从 CSV 中提取数据之前创建空列表是不必要的。

关于python - 从列表中删除重复项 - "TypeError: ' 系列的对象是可变的,因此无法对它们进行哈希处理。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54756731/

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