首页 > 解决方案 > 按 2 列分组,然后将另一列的 1 个值与第 4 列的所有值进行比较

问题描述

我有一个数据框:

dftest = [{'Name': 'John', 'Year': 1976, 'Number1': 123, 'Number2': 155},
          {'Name': 'Abel', 'Year': 1977, 'Number1': 123, 'Number2': 123},
          {'Name': 'John', 'Year': 1980, 'Number1': 144, 'Number2': 1},
          {'Name': 'John', 'Year': 1976, 'Number1': 155, 'Number2': 123},
          {'Name': 'John', 'Year': 1976, 'Number1': 777, 'Number2': 777},
          {'Name': 'John', 'Year': 1976, 'Number1': 888, 'Number2': 8}]

df = pd.DataFrame(dftest)

我需要按姓名和年份分组,然后查看 Number2 中的任何值是否在 Number1 列中找到。如果没有找到,那么我需要将 Number2 中的值替换为 'NONE'

结果应该是:

dftest = [{'Name': 'John', 'Year': 1976, 'Number1': 123, 'Number2': 155},
          {'Name': 'Abel', 'Year': 1977, 'Number1': 123, 'Number2': 123},
          {'Name': 'John', 'Year': 1980, 'Number1': 144, 'Number2': 'NONE'},
          {'Name': 'John', 'Year': 1976, 'Number1': 155, 'Number2': 123},
          {'Name': 'John', 'Year': 1976, 'Number1': 777, 'Number2': 777},
          {'Name': 'John', 'Year': 1976, 'Number1': 888, 'Number2': 'NONE'}]

df = pd.DataFrame(dftest)

抱歉格式化。第一次海报。

标签: comparisonpandas-groupby

解决方案


推荐阅读