Рассчитать новое значение, используя другой фрейм данных - PullRequest
0 голосов
/ 30 августа 2018

Я ищу способ разделить все столбцы в кадре данных со значением столбца из другого df. Это можно сделать с помощью любого из 2 вариантов, указанных ниже.

df_amenity_normalized = df_amenity.apply( 
    lambda row: row / df_targets['Population'].loc[row.name], axis=1)

Или присоединитесь к таблицам и затем рассчитайте:

ndf=df_amenity.merge(df_targets, left_index=True, right_index=True) 
ndft=ndf.apply(lambda x: x/ndf.Population, axis='rows' )
df_amenity_normalized1 = ndft.drop(columns=['Population', 'GNI', 'GDP', 'BM Dollar', 'HDI'])

Есть ли другой способ добиться таких же результатов?


Данные доступны здесь ...

df_targets = pd.read_csv('https://raw.githubusercontent.com/njanakiev/osm-predict-economic-measurements/master/data/economic_measurements.csv', index_col='country')
df_targets.drop(columns='country_code', inplace=True)
df_targets = df_targets[['Population', 'GNI', 'GDP', 'BM Dollar', 'HDI']]

df_amenity = pd.read_csv('https://raw.githubusercontent.com/njanakiev/osm-predict-economic-measurements/master/data/country_amenity_counts.csv')
df_amenity.set_index('country', inplace=True)
df_amenity.drop(columns='country_code', inplace=True)

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете использовать функцию df.div () из pandas. Смотрите ниже:

df_amenity.div(df_targets['Population'], axis = 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...