#python #pandas
#python #pandas
Вопрос:
У меня есть набор данных со следующими столбцами:
Страна, год, население, случай самоубийства, ВВП страны
Проблема: Я хочу вычислить (случай самоубийства / население) * 100 для каждой страны
Мой подход :
import pandas as pd
fileName = pd.read_csv("File Path")
pd.groupby("Country")
Как я должен расширить свой код для вычисления выше?
Ответ №1:
Вот вам пример. Может быть, это могло бы быть лучше, но это должно сработать для вас.
import pandas as pd
df = pd.DataFrame({"Country":["France", "UK", "France", "UK"],
"Population":[1, 2, 3, 4],
"Suicide case":[5, 3, 6, 2]})
df_grouped = df.groupby("Country").sum()
(df_grouped["Suicide case"]/df_grouped["Population"])*100
Ответ №2:
Также более сжатым является:
df.groupby('Country').apply(lambda x: x['Suicide case'].sum()/
float(x['Population'].sum())*100)
Ответ №3:
Если я правильно понял ваш вопрос, вы можете попробовать приведенный ниже код, чтобы получить желаемый результат:
fileName = fileName.groupby(['Year','Country']).sum()
fileName['New_var'] = (fileName['Suicide case']/ fileName['Population'])*100
вам также нужен год в группе, иначе по годам также будет получена совокупность.