JupyterLab / Python / Pandas - Сравнение двух фреймов данных - PullRequest
2 голосов
/ 22 апреля 2020

Я пытаюсь импортировать два файла и сравнить значения счетчиков в df1 (данные по состоянию) и число в строке для этого состояния в df2.

Другими словами, в одном файле Excel есть что-то похожее на это:

State      Food
Arizona    Bananas
Arizona    Pears
Arizona    Pickles
Connecticut Potatoes
Connecticut Apples

Et c.

Итак, меня интересует, сколько раз появляется состояние, количество значений.

В другом файле у меня есть столбец из 50 состояний и число.

То, что я пытаюсь сделать, это в основном создать фрейм данных, который отображает, по состоянию, количество раз, когда указанное состояние появляется в df1 (поэтому здесь Аризона будет 3), деленное на число в столбце, соответствующем Аризоне во втором фрейме данных , Имеет ли это смысл?

Второй фрейм данных содержит общую численность населения для каждого штата, поэтому на выходе выше 3 / n будет плод на душу населения.

1 Ответ

2 голосов
/ 23 апреля 2020

Будет работать следующее

import numpy as np
import pandas as pd

df1 = pd.DataFrame({'state': ['Arizona', 'Arizona', 'Arizona', 
                              'Connecticut', 'Connecticut'],
                  'food': ['Bananas', 'Pears', 'Pickles', 'Potatoes', 'Apples']})
df2 = pd.DataFrame({'state':['Arizona', 'Connecticut'],
                  'population': [7300000, 3565000 ]})

df1 = df1.groupby('state').count().merge(df2.set_index('state'), 
                                      how = 'left', left_index = True, right_index = True)
df1['result'] = df1['food']/df1['population']
df1


          food      population   result
state           
Arizona     3       7300000      4.109589e-07
Connecticut 2       3565000      5.610098e-07
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...