Python Pandas Сравнение атрибутов в наборах данных и вычисление общего количества для конкретного города - PullRequest
0 голосов
/ 12 декабря 2018

Как бы я поступил в Python Pandas?Буду ли я использовать Groupby для вопроса 2?Мне не нужен ответ в коде, просто будет псевдокод или объяснение операций.

Dataset 1
CITY    POPULATION
BOSTON   645,966
NEW YORK 8,336,697
CHICAGO  2,714,856

Dataset 2
Newspaper         City          Readers
Boston Globe     Boston, MA     245572
New York Times   New York, NY   1865318
Daily News       New York, NY   516165
New York Post    New York, NY   500521
Chicago Sun-Times Chicago, IL   470548 
Chicago Tribune  Chicago, IL     414930

Перечислите операции (по порядку), чтобы изменить каждое значение в атрибуте 'City' в наборе данных 2, чтобычто его можно напрямую сравнить с атрибутом «ГОРОД» в наборе данных 1.

Предположим, что каждый читатель газеты читает одну газету, и она из своего родного города.Перечислите операции для расчета общего числа читателей газет в каждом городе.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Сначала сопоставьте названия городов

city_dict = {
    'Boston, MA':'BOSTON'
    'New York, NY': 'NEW YORK'
    'Chicago, IL': 'CHICAGO'
}

dataset2['CITY'] = dataset['City'].map(city_dict)

Затем сгруппируйте набор данных 2 по столбцу 'CITY' и суммируйте столбец 'Readers'

Вот ссылка на документацию Pandasдля группового .По сути, вы делаете то же самое, что и в первом примере, за исключением того, что вы группируете только по одному столбцу вместо двух и берете сумму вместо среднего.Если вы застряли, я могу дать вам пример кода, я понимаю, что вы специально просили не иметь его.

0 голосов
/ 12 декабря 2018

вы можете взять уникальное значение city из набора данных2, а затем использовать это значение для условного перебора вашего фрейма данных.Проще говоря:

    # Get unique city names
    city_list = dataset2.unique().tolist()
    # Add mapping to correct city names
    city_mapping = {
       'Boston, MA':'BOSTON'
    }

    # Dynamically iterate and replace with correct value
    for city in city_list:
        dataset2.loc[dataset2.city == city,'city'] = city_mapping[city]

И да, во втором вопросе используйте groupby и sum , и вы сможете значительно улучшить это, что вы можете понять по ходу дела,И вы можете также динамически генерировать city_mapping, частично сопоставляя текст из набора данных2 с набором данных1.

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