gpt4 book ai didi

python - 替换 Pandas 数据框中的列表元素

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:54 25 4
gpt4 key购买 nike

df=pd.DataFrame({"a":[1,2,3,[4,5],["apple","pear"]]})
df.replace({[4,5]:4.5})
df.replace({["apple","pear"]:"apple"})

这里我遇到了 TypeError。我想替换具体的列表,要替换的列表和替换列表的对象之间没有任何规定。

最佳答案

不是一个微不足道的问题,因为 DataFrame 并非设计用于处理可变对象,如列表、集合或字典。

您可以确定匹配的索引并进行相应的替换。

m = [v == [4, 5] for v in df['a']] 
df.loc[m, 'a'] = 4.5

df
a
0 1
1 2
2 3
3 4.5
4 [apple, pear]

['apple', 'pair'] 遵循类似的过程。如果您愿意,可以从中形成一个函数:

def replace(df, col, key, val):
m = [v == key for v in df[col]]
df.loc[m, col] = val

replace(df, 'a', [4, 5], 4.5)
replace(df, 'a', ['apple', 'pear'], 'apple')

df
a
0 1
1 2
2 3
3 4.5
4 apple

注意:该函数就地工作。

关于python - 替换 Pandas 数据框中的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50322875/

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