gpt4 book ai didi

python - ValueError: Series.replace 不能使用 dict-value 和非 None to_replace

转载 作者:行者123 更新时间:2023-12-05 05:55:34 26 4
gpt4 key购买 nike

代码:

h1=df[df["native-country"]!="?"]
f1=h1.mode()
df['native-country'] = df['native-country'].replace("?",df['native-country'].mode())

错误:

ValueError: Series.replace cannot use dict-value and non-None to_replace

我不知道为什么我会收到这个错误希望有人能帮助我

最佳答案

我推荐的简单答案是使用:

mode = df[df["native-country"]!="?"]["native-country"].mode()[0]
df['native-country'] = df['native-country'].replace("?", mode)

但这有一个重要的警告和下面的进一步解释。


更详细的解释:

df['native-country'].mode() 将返回一个系列,而不是单个值。这是因为可以有不止一种模式。请考虑以下事项:

d = {'native-country': ['?', None, 'Spain', 'Germany', 'Greece']}
df = pd.DataFrame(d)
mode = df['native-country'].mode()

检查 mode 显示实际上有多个模式值,因为系列中最常见的元素是出现一次的任何元素:

0          ?
1 Germany
2 Greece
3 Spain
dtype: object

还值得注意的是,默认情况下不包括 None 值。即使在只有一个最常见值的情况下,Series.mode() 也会返回一个元素 Series:

d = {'native-country': ['?', None, 'Spain', 'Germany', 'Spain']}
df = pd.DataFrame(d)
mode = df['native-country'].mode()

这使 mode 为:

0    Spain
dtype: object

我的方法非常简单,只是使用返回的系列的第一个值作为用于替换的值,但是如果您想要更复杂的逻辑以应对可能有多种模式的情况,您必须自己决定。


完整的、可复制粘贴的代码示例:

import pandas as pd


d = {'native-country': ['?', None, 'Spain', 'Germany', 'Spain']}
df = pd.DataFrame(d)

print(df)

mode = df[df["native-country"]!="?"]["native-country"].mode()[0]
df['native-country'] = df['native-country'].replace("?", mode)

print(df)

关于python - ValueError: Series.replace 不能使用 dict-value 和非 None to_replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69450729/

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