【问题标题】:How to show column data that contains keyword in a dataframe如何在数据框中显示包含关键字的列数据
【发布时间】:2020-04-15 17:32:51
【问题描述】:

我有一个数据框,其中有一列名为“job_title”,有很多职位,我想显示所有职位包含“教授”

我有以下代码:

sunshin_df[sunshin_df['job_title'].isin(['Professor'])

但这只显示“教授”头衔,不包括“副教授”等其他头衔

然后我尝试使用.str.contains,但是不行,

AttributeError: 'list' 对象没有属性 'str'

sunshin_df[sunshin_df['job_title'].isin(['Professor'].str.contains('Professor', na=False, case=False))]

显示包含我想要的关键字的所有值的最佳和最简单的方法是什么?

【问题讨论】:

  • 试试sunshin_df[sunshin_df['job_title'].str.contains('Professor')]

标签: python pandas


【解决方案1】:

您应该尝试以下操作:

sunshin_df[sunshin_df['job_title'].str.contains('Professor')]

即检查 job_title 列的值是否包含“Professor”。

【讨论】:

  • 我能理解,在python中,“isin”用于精确搜索,而“.str.contains”用于关键字搜索吗?但我不应该一起使用它们,因为它们提供不同的功能?
  • isin 用于在列表中查找元素时。我猜您的用例是检查字符串中的单词/字符串。在这种情况下 contains 更有用。
  • 我刚试过。它给了我“ValueError:无法使用包含 NA / NaN 值的非布尔数组进行掩码”我的数据框中有 NaN 值,所以 .str.contains 不起作用?
  • 您可以使用 fillna() 方法用空字符串填充 NA / NaN
【解决方案2】:
import pandas as pd 
data = {'job_title':  ['Professor', 'Accountant','Teacher','Associate 
Professor','Secretary','Professor']    }

df = pd.DataFrame (data, columns = ['job_title'])
df[df['job_title'].str.contains('Professor')]

输出:

    job_title
0   Professor
3   Associate Professor
5   Professor

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多