Python Pandas:如何判断 DataFrame 中两列组合是否在另外两列组合中
要将 DataFrame 中的两列'地市'和'区县'组合,并遍历其中的元素,判断每个区县是否存在于另外两列'地市1'和'区县2'的组合中,可以使用 apply 函数结合 lambda 表达式来实现。以下是一个示例代码:
import pandas as pd
# 创建示例数据
data = {
'地市': ['北京', '上海', '上海', '北京', '广州'],
'区县': ['海淀', '浦东', '徐汇', '浦东', '番禺'],
'地市1': ['上海', '北京', '北京', '上海', '广州'],
'区县2': ['浦东', '海淀', '徐汇', '徐汇', '番禺']
}
df = pd.DataFrame(data)
# 定义判断函数
def is_in_other_columns(row):
city_county = row['地市'] + '-' + row['区县']
other_city_county = row['地市1'] + '-' + row['区县2']
if city_county in other_city_county:
return True
else:
return False
# 判断每个区县是否存在于另外两列的组合中
df['存在判断'] = df.apply(lambda row: is_in_other_columns(row), axis=1)
print(df)
在上述代码中,我们首先创建了一个示例的 DataFrame:df,其中包含了'地市'、'区县'、'地市1'和'区县2'四列数据。
然后,我们定义了一个判断函数 is_in_other_columns,该函数接收一个行数据作为输入,将'地市'和'区县'两列组合为一个字符串 city_county,将'地市1'和'区县2'两列组合为一个字符串 other_city_county,然后判断 city_county 是否存在于 other_city_county 中,并返回对应的布尔值。
接着,我们使用 apply 函数和 lambda 表达式,对 DataFrame 的每一行应用判断函数 is_in_other_columns,指定 axis=1 表示按行应用,将判断结果添加到新的列'存在判断'中。
最后,我们打印输出包含了判断结果的 DataFrame。
执行上述代码后,将会打印出每个区县是否存在于另外两列的组合中的判断结果。如果存在,则对应行的'存在判断'列值为 True,否则为 False。
原文地址: https://www.cveoy.top/t/topic/bSHl 著作权归作者所有。请勿转载和采集!