python - 如何根据列值比较在 python 中过滤 Pandas 数据框?

标签 python pandas

如果您有这样的 Pandas 数据框,则可以通过这种方式进行过滤:

df = pd.DataFrame({'name1': ['apple','pear','applepie','APPLE'],
                'name2': ['APPLE','PEAR','apple','APPLE']
            })
df[df['name1'] != df['name2']] # works

但是当你想比较列的上限值时,你如何过滤行呢?

df[df['name1'].upper() != df['name2'].upper()]  # does not work

最佳答案

您需要使用 pandas.Series.str.upper()因为 df['name1'] 是一系列字符串,因此我们使用 .str用于矢量化字符串操作的字符串访问器。

df[df['name1'].str.upper() != df['name2'].str.upper()]

输出:

       name1    name2
2   applepie    apple

关于python - 如何根据列值比较在 python 中过滤 Pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500904/

相关文章:

python - python 对象中的隐式项目分配

python - 我可以在数字中插入逗号吗?数字是字符串的一部分

python - 如何在Python中解析深度嵌套的yaml数据结构

python - Pandas 列日期转换

python - 基于 CSV 创建二维数组

python-3.x - 将大 Pandas df 保存到 hdf 时出现溢出错误

python - 带有附加参数(如果可能)或上下文处理器的通用 View 可将额外信息传递给模板?

python - 仅获取类的已声明方法(不包括继承类的方法)

python - 尝试用 Python pandas 做一个奇怪的转置

python - 将每日数据按月份分组并计算每个用户的对象数