python - pandas 在通过条件选择时失败

标签 python pandas

在使用 pandas Dataframe 对象并使用 DataFrame 中的条件选择时,会出现如下错误,而我在浏览一些在 Jupiter 笔记本上也适用的视频时看到。

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

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

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

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 将列转换为数字:

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

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

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

关于python - pandas 在通过条件选择时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072787/

相关文章:

python - OpenCV光流示例代码错误

python - python3上的简单书店程序

python - Python 可以运行一个脚本的多个实例,每个实例都包含它自己的数据吗?

sorting - Pandas 数据透视表嵌套排序第 2 部分

python - 为什么 pandas 在日期索引表中查找日期时会生成 KeyError?

python - cx_Oracle.so : undefined symbol:PyUnicodeUCS2_AsEncodedString

python - 过滤掉包含特殊字符的 Pandas 数据框行的最快方法

python - 根据其他行和列的多个条件在数据框中创建新列?包括空行? - python / Pandas

python - Pandas 根据其他列中的值创建新列

python - 在 Pandas DF 行中查找最小日期并创建新列