Группировка стран по регионам - PullRequest
0 голосов
/ 09 февраля 2019

Я создаю файл Excel для создания панели веб-аналитики, и моя текущая проблема: Как группировать страны по различным регионам?Например: EMEA, APAC, AMER

У меня есть два файла Excel.В первом есть столбцы: account_id, external/internal и country_list.

Во втором файле также содержится список стран и их соответствующих регионов (EMEA, APAC и т. Д.) countries, regions

Я хотел бы сравнить столбец country_list из файла 1 со столбцом countries из файла 2, и если значения совпадают, то следует взять значение в столбце регионов.Например: если country_list и countries оба содержат "Германия", то значение должно быть EMEA.

До сих пор я начал следующим образом:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from pandas import ExcelWriter
from pandas import ExcelFile

accounts = pd.read_excel('accountids_with_properties.xlsx', sheetname='accountids_with_properties')
CountryGroups = pd.read_excel('country_list.xlsx', sheetname='country_list')

def groupCountry(col):
    for col in accounts.index[3]:
        if col = CountryGroups.index[0]:

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Спасибо за ваши предложения.В итоге я прочитал файл страны в виде списка, а затем сравнил его с более крупным файлом учетных записей, а также добавил регионы в новый столбец в файле учетных записей.

Код выглядит так:

#for index, row in df.iterrows():
#    print(row['c1'], row['c2'])
for index, row in accounts.iterrows():
    print(row['CountryGroups'])
    for index, entry in CountryGroups.iterrows():
        if row['accounts'] == entry['Country']:
            print(entry['Region'])
            row['Region'] = entry['Region']
            print(row)
            #return entry.index[1]
0 голосов
/ 10 февраля 2019

accounts.merge(CountryGroups, how='left', left_on='country_list', right_on='countries')

Если вас интересуют только пары страна-регион: регион, вы также можете сделать:

CountryGroups[CountryGroups.countries.isin(set(accounts.country_list))]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...