繁体   English   中英

在熊猫数据框中用`nan`替换数字

[英]Replace numbers by `nan` in pandas data frame

我在熊猫数据框上的一栏有问题。 由于数据输入错误,我有一列包含truefalse ,但它也包含约71个小数。

我试图摆脱小数点并将其变成nan以便我可以忽略那些行以进行进一步分析。

当我尝试:

datafinal['any_misread'] = datafinal['any_misread'].where(datafinal['any_misread'] < 1, np.nan)

我得到错误:

TypeError: unorderable types: str() < int()

我也尝试使用.replace逻辑处理,但没有成功。

我在这里想念什么?

让我们尝试使用whereastype

df = pd.DataFrame({'col1':[True, False, 0.12, True, False, .3]})

df.where((df.col1.astype(str) == 'True') | (df.col1.astype(str) == 'False'))

输出:

    col1
0   True
1  False
2    NaN
3   True
4  False
5    NaN

您可以检查列中每个项目的类型是否不是布尔值,然后更改值。

df = pd.DataFrame([[True],[True],[False],[10.2],[1.0],[False],[0]], columns=['misread'])
df.misread[df.misread.apply(lambda x: not isinstance(x, bool))] = pd.np.nan

df
# returns
  misread
0    True
1    True
2   False
3     NaN
4     NaN
5   False
6     NaN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM