Сравните два разных листа в одном Excel-файле друг с другом - PullRequest
0 голосов
/ 09 мая 2019

У меня есть Excel-файл с двумя листами. Один содержит df1:

Country City Population Planet
Germany  Berlin 30500    Earth
Spain    Madrid  21021   Earth
...

А второй содержит df2:

Country   City   Population Planet
Spain    Madrid  21021   Earth
...

Теперь я хочу сравнить два кадра данных и проверить, есть ли строки в df1, которые также есть в df2, и если да, то: Я хочу добавить новый столбец в df1, который имеет имя double и просто хочу поставить «X», если строка находится в df1 и в df2.

1 Ответ

0 голосов
/ 09 мая 2019
# 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...