【发布时间】:2020-09-15 17:15:05
【问题描述】:
我有一个相当大的 pandas 数据框(11k 行和 20 列)。一列具有混合数据类型,主要是数字(浮点数),其中散布着少量字符串。
在使用混合列中的数据执行一些统计分析之前,我通过查询其他列来子集此数据帧(但如果存在字符串,则无法执行此操作)。一旦对该列进行子集化,99% 的时间都是纯数字,但很少有字符串值会出现在子集中,我需要将其捕获。
循环遍历 Pandas 混合类型列以检查字符串(或反过来检查整个列是否充满数值)的最有效/pythonic 方式是什么?
如果列中存在一个字符串,我想引发错误,否则继续。
【问题讨论】:
-
您能简单地尝试将其转换为浮点数吗? df['col_test'].astype(float)
-
是的,我已经在这样做并捕获类型和值错误我只是在寻找另一种方法,但我可能已经有了解决方案。例如,我想知道 pandas 是否有内置方法(尽管我在文档中找不到)
-
另外我应该补充一点,转换会告诉我有问题,但不一定有多少字符串或其索引可能是我的下一步