gpt4 book ai didi

python - 使用正则表达式将值替换为 np.nan

转载 作者:太空狗 更新时间:2023-10-30 01:11:52 25 4
gpt4 key购买 nike

我有一个数据框如下:

data1 = {"first":["alice", "bob", "carol"],
"last_huge":["foo", "bar", "baz"]}
df = pd.DataFrame(data1)

例如,我想将所有字符 'o' 替换为 'a':

那我做

df.replace({"o":"a"},regex=True)
Out[668]:
first last
0 alice faa
1 bab bar
2 caral baz

它回馈我所需要的。

但是,当我想将'o'替换为np.nan时,它会将整个字符串更改为np.nanpandas 的文档有解释吗? 我可以通过source code 找到一些信息。 .

更多信息:(它将整个字符串更改为np.nan)

df.replace({"o":np.nan},regex=True)
Out[669]:
first last
0 alice NaN
1 NaN bar
2 NaN baz

最佳答案

NaN is consistently used as a placeholder for missing ,当用“缺失”替换字符串的一部分时,它只能意味着整个条目都被破坏了。我听说过这称为 NaN 污染(或类似的,看看我是否能找到一些引用资料),因为如果 NaN 接触到数据就会受到损害。

也就是说,情况并非总是如此:

In [11]: s = pd.Series([1, 2, np.nan, 4])

In [12]: s.sum()
Out[12]: 7.0

In [13]: s.sum(skipna=False)
Out[13]: nan

在某些语言中,您会看到 skipna=False 作为默认行为,一些人强烈主张 NaN 应该始终污染所有数据。 Pandas 采用了一种更务实的方法......

真正的问题是您希望它在 NaN 的情况下做什么?

关于python - 使用正则表达式将值替换为 np.nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944650/

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