# create string data
df1_str = '''Country,City,Population,Planet
Germany,Berlin,30500,Earth
Spain,Madrid,21021,Earth'''
df2_str = '''Country,City,Population,Planet
Spain,Madrid,21021,Earth'''
# read in to dataframe
df1 = pd.read_csv(io.StringIO(df1_str))
# read in to list for iteration
df1_list = pd.read_csv(io.StringIO(df1_str)).values.tolist()
df2_list = pd.read_csv(io.StringIO(df2_str)).values.tolist()
# join all columns and make a unique combination
df1_list = ["-".join(map(str, item)) for item in df1_list]
df2_list = ["-".join(map(str, item)) for item in df2_list]
# check the combinations exist in both data frame
common_flag = []
for item1 in df1_list:
for item2 in df2_list:
if item1 in item2: # you might prefer item1 == item2:
common_flag.append("X")
else:
common_flag.append(None)
# add the result to datagrame df1
df1["double"] = pd.Series(common_flag)
При создании комбинации убедитесь, что порядок столбцов в обоих кадрах данных одинаков. list
.
Выход:
Country City Population Planet double
0 Germany Berlin 30500 Earth None
1 Spain Madrid 21021 Earth X