我有一个很大的数据框,当阅读它时,它给了我这样的消息:
DtypeWarning:列 (0,8) 具有混合类型。导入时指定 dtype 或设置 low_memory=False。
它应该是一列浮标,但我怀疑里面藏着几根绳子。我想识别它们,并可能删除它们。
我试过
df.apply(lambda 行: isinstance(row.AnnoyingColumn, (int, float)), 1)
但这给了我一个内存不足的错误。
我想一定有更好的方法。
如果浮动,这将为您提供 True:
df.some_column.apply(lambda x: isinstance(x, float))
如果 int 或 string 则为 True:
df.some_column.apply(lambda x: isinstance(x, (int,str)))
因此,要删除字符串:
mask = df.some_column.apply(lambda x: isinstance(x, str))
df = df[~mask]
删除浮点数和字符串的示例:
$ df = pd.DataFrame({'a': [1,2.0,'hi',4]})
$ df
a
0 1
1 2
2 hi
3 4
$ mask = df.a.apply(lambda x: isinstance(x, (float,str)))
$ mask
0 False
1 False
2 True
3 False
Name: a, dtype: bool
$ df = df[~mask]
$ df
a
0 1
3 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)