gpt4 book ai didi

python - Pandas 替换为字符串和整数 - 不正确的行为?

转载 作者:行者123 更新时间:2023-11-28 19:10:54 26 4
gpt4 key购买 nike

我遇到了 pandas .replace() 函数对于字符串和整数的潜在错误行为。如果数据帧同时具有 0(整数)和“0”(字符串),则替换“0”会同时影响字符串和整数。事情是这样的:

In [1]: df = pd.DataFrame({'numbers' : [0, 1, 2, 0], 'strings' : ['0', 1, 2, '0']})

检查它是否确实是正确的设置:

In [2]: df.dtypes
Out [2]:
numbers int64
strings object
dtype: object

并检查各个值:

In [3]: type(df['numbers'][0])
Out[3]: numpy.int64
In [4]: type(df['strings'][0])
Out[4]: str

现在,替换:

In [5]: df.replace(to_replace='0', value=np.NaN, inplace=True)
In [6]: df.head()
Out[6]:
numbers strings
0 NaN NaN
1 1 1
2 2 2
3 NaN NaN

如您所见,它替换了字符串和整数,但它应该只适用于字符串。如果我们对整数进行相同的尝试,它会正常工作:

In [7]: df = pd.DataFrame({'numbers' : [0, 1, 2, 0], 'strings' : ['0', 1, 2, '0']})
...: df.replace(to_replace=0, value=np.NaN, inplace=True)
...: print df.head()
Out [7]:
numbers strings
0 NaN 0
1 1 1
2 2 2
3 NaN 0

这是正确的行为还是我应该报告错误?我正在使用 Pandas 0.19.0。

更新:错误报告并确认。 @nickil-maveli 提供了同时有效的解决方法:df.replace(to_replace=['0'], value=[np.NaN], inplace=True)

最佳答案

开发人员报告并确认的错误。 @nickil-maveli 提供了一个同时有效的解决方法:df.replace(to_replace=['0'], value=[np.NaN], inplace=True)

关于python - Pandas 替换为字符串和整数 - 不正确的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40362041/

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