Pandas: как суммировать столбцы на основе условия


Вы можете использовать следующий синтаксис для суммирования значений столбца в pandas DataFrame на основе условия:

df.loc[df['col1'] == some_value, 'col2'].sum()**

В этом руководстве представлено несколько примеров того, как использовать этот синтаксис на практике, используя следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'C'],
 'conference': ['East', 'East', 'East', 'West', 'West', 'East'],
 'points': [11, 8, 10, 6, 6, 5],
 'rebounds': [7, 7, 6, 9, 12, 8]})

#view DataFrame
df

# team conference points rebounds
#0 A East 11 7
#1 A East 8 7
#2 A East 10 6
#3 B West 6 9
#4 B West 6 12
#5 C East 5 8**

Пример 1: суммирование одного столбца на основе одного условия

В следующем коде показано, как найти сумму очков для строк, в которых команда равна «А»:

df.loc[df['team'] == 'A', 'points'].sum()

#29**

Пример 2: суммирование одного столбца на основе нескольких условий

В следующем коде показано, как найти сумму очков для строк, где команда равна «А», а конференция равна «Восток»:

df.loc[(df['team'] ==  A') &(df['conference'] == 'East'), 'points'].sum()

#29**

Пример 3: суммирование одного столбца на основе одного из нескольких условий

Следующий код показывает, как найти сумму очков для строк, где команда равна «A» или «B»:

df.loc[df['team'].isin(['A', 'B']), 'points'].sum()

41**

Вы можете найти больше руководств по пандам на этой странице .