关于python:pandas在传递条件选择时失败

pandas fails while passing conditional selection

本问题已经有最佳答案,请猛点这里访问。

在处理pandas数据帧对象和使用数据帧中的条件选择时,它给出了如下错误,而我在浏览一些视频时看到,Jupiter笔记本上也有同样的情况。

但是,它清楚地说明了下面的错误,但是我没有找到解决它的方法,即使我在各种各样的so帖子上搜索,但没有得到相同的错误解决方案。

TypeError: '>' not supported between instances of 'str' and 'int'

下面是我在puthon3.6中使用的代码内容。

1
2
3
4
5
6
7
8
import pandas as pd
import numpy as np

df  = pd.DataFrame({'coln1': ['1', '2', '3'],
                    'coln2': ['111', '222', '111'],
                    'coln3': ['aaa', 'bbb', 'ccc']})

print(df[df['coln1']>2])

在我环顾四周的时候,任何帮助或指导都非常感谢。


Series.astype将列转换为数字:

1
print(df[df['coln1'].astype(int)>2])

如果一些非数字值被to_numeric和参数errors='coerce'转换为NaNs,则更通用的解决方案是:

1
print(df[pd.to_numeric(df['coln1'], errors='coerce')>2])