Pandas как посчитать долю
Есть файл с данными — https://github.com/Yorko/mlcourse.ai/blob/main/data/adult.data.csv
Задача — узнать доля граждан Германии (Germany), признак «native-country»
Решение — необходимо отфильтровать данные, отвечающие определенному условию (содержание определенного слова в определенном столбце) и посчитать долю отфильтрованных данных в общей массе данных (то есть посчитать долю отфильтрованного кол-ва строк в общем кол-ве строк).
Для того, чтобы отфильтровать данные я воспользовался следующими командами.
1. Прочитать данные в DataFrame
import pandas as pd import numpy as np df = pd.read_csv('adult.data.csv')
2. Посчитать значения
df['native-country'].str.contains('Germany').mean()
Также есть иной вариант решения, немного сложенее. Сначала добавить отдельный столбец и в него указать признак 1 для Германии, а потом посчитать среднее значение. Вариант одинаков
df['is-german'] = np.where(df['native-country']== 'Germany', 1, 0) df['is-german'].mean()