датафрейм python pandas, добавляющий итоговый столбец с фильтрованными критериями - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть файл, в котором я сравниваю разные фрагменты информации для разных представлений базового набора данных.Цель состоит в том, чтобы перечислить фрагменты информации и сравнить итоги.

У меня есть следующий фрейм данных:

df = pandas.DataFrame({"Measures": 
['Country','State','County','City'], 
"Green": ['Included','Excluded','Included','Included'], "Orange": 
['Excluded', 'Excluded', 'Excluded', 'Included']})

У меня есть следующий базовый набор данных:

Location    Green    Orange
Country     1        6
State       3        10
County      2        15
City        5        20

Я бы хотел, чтобы окончательный результат выглядел так:

Measures    Green    Orange
Country     Included Excluded
State       Excluded Excluded
County      Included Excluded
City        Included Included
Total       8        20

1 Ответ

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

Вы можете использовать df, чтобы замаскировать значения базового фрейма данных перед вычислением суммы.

m = df.eq('Included')   
# Assume df2 is your underlying DataFrame.
v = df2[m].sum()
# Assign the total back as a new row in df.    
df.loc['Total', :] = v[df2.dtypes != object]

df
      Measures     Green    Orange
0      Country  Included  Excluded
1        State  Excluded  Excluded
2       County  Included  Excluded
3         City  Included  Included
Total      NaN         8        20

Другой вариант, если вы хотите более идентичный вывод, это установить "Меры" и "Локации »как индексы соответственно.

df = df.set_index('Measures')
df2 = df2.set_index('Location')

m = df.eq('Included') 
v = df2[m].sum()
df.loc['Total', :] = v

df
             Green    Orange
Measures                    
Country   Included  Excluded
State     Excluded  Excluded
County    Included  Excluded
City      Included  Included
Total            8        20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...