【问题标题】:Filter column data with some keywords in each cell using paython pandas使用python pandas在每个单元格中使用一些关键字过滤列数据
【发布时间】:2022-01-07 05:16:13
【问题描述】:

我有一个 Excel 表,所以我正在创建一个自动化脚本,它获取包含一些特定关键词的所有数据。假设在 C 列中我有很多名字,那么我只需要过滤那些数据以不同姓氏的术语“John”开头的行。如果在 C 列中有 1000 个名称,并且 100 个名称以名字 John 开头,但姓氏不同。所以我想要所有 100 个名称以及相应的 A、B 和 D 列。我无法在列上过滤掉。

【问题讨论】:

  • 请与预期输出共享示例输入数据框。

标签: python python-3.x excel pandas dataframe


【解决方案1】:

你可以使用startswith - 试试这个例子:

df = pd.DataFrame(np.array([[1, 2, 'John A', 3], [1, 2, 'John B', 3], [1, 2, 'Michael A', 3]]), columns=['A', 'B', 'C', 'D'])

df_new = df[df.C.str.startswith('John ')]

【讨论】:

  • 它正在工作。但我面临的另一个问题是它正在删除重复值。例如,如果 3 个人的名字是 John smith,那么它只会打印一个 John smith。
  • 不应该这样。如果我执行提供的代码,则会显示所有包含“John”的行。你能分享你的代码吗?
【解决方案2】:

您可以使用 loc 函数。它将仅提取在“C”列中具有名为 John 的字符串的数据。希望这会奏效。

df=df.loc[df['C'].str.contains('John')]

【讨论】:

  • 请通过添加解释为什么会解决这个问题来改进您的答案。
  • 感谢卡兰的帮助。这是工作。但我面临的另一个问题是它正在删除重复值。例如,如果 3 个人的名字为 John smith,则仅打印一个 John smith。
  • 嗨 Raj,上面的代码不会删除重复项它只会选择 John 命名的数据(如果存在于 C 列中)。你能告诉我你的代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2020-11-06
  • 2017-12-07
  • 2012-11-21
相关资源
最近更新 更多