在多列中将 'nan' 作为字符串更改为 NaN

Change 'nan' as a string to NaN in multiple columns

我目前正在处理一个文件,其中 columns/series 个包含数字和字母字符。想想 35 km/ph。查看 .info,由于字母的原因,该系列(显然)是一个对象。

我用 '' 替换了字母,剩下的是数字,但注意到 .info 保留为对象。我发现每一列都包含 'nan' 的字符串,而不是空单元格 NaN。例如

s = ['banana', 'apple', 'pear', 'cherry', 'apple', 'apple'. 'banana] 
t = [7,4,7,2,8,8,5]
x = [3,4,5,3,2, 'nan', 6,5]
y = [32,'nan', 'nan', 67,54,21,101]
z = ['nan', 654, 567, 876, 967, 'nan', 763]

我正在搜索特定列 x、y、z 并将 'nan' 替换为适当的 NaN。

我已经设法用单独的列做到了这一点:

df['x'].replace('nan', np.NaN)

但我想知道是否有更有效的方法来做到这一点,例如创建我自己的 def 函数等

我也试过:

df[['x', 'y', 'z']].replace('nan', np.NaN, inplace=True)

但这似乎没有用。

你可以做到这一点。

df[["x", "y", "z"]] = df[["x", "y", "z"]].replace("nan", np.NaN)