Pandas: как разделить DataFrame по значению столбца


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

#define value to split on
x = 20

#define df1 as DataFrame where 'column_name' is >= 20
df1 = df[df['column_name'] >= x]

#define df2 as DataFrame where 'column_name' is < 20
df2 = df[df['column_name'] < x]

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: разделение Pandas DataFrame по значению столбца

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
 'points': [22, 24, 19, 18, 14, 29, 31, 16],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

 team points rebounds
0 A 22 11
1 B 24 8
2 C 19 10
3 D 18 6
4 E 14 6
5 F 29 5
6 G 31 9
7 H 16 12

Мы можем использовать следующий код, чтобы разделить DataFrame на два DataFrame, где первый содержит строки, где «точки» больше или равны 20, а второй содержит строки, где «точки» меньше 20:

#define value to split on
x = 20

#define df1 as DataFrame where 'points' is >= 20
df1 = df[df['points'] >= x]

print(df1)

 team points rebounds
0 A 22 11
1 B 24 8
5 F 29 5
6 G 31 9

#define df2 as DataFrame where 'points' is < 20
df2 = df[df['points'] < x]

print(df2)

 team points rebounds
2 C 19 10
3 D 18 6
4 E 14 6
7 H 16 12

Обратите внимание, что мы также можем использовать функцию reset_index() для сброса значений индекса для каждого результирующего DataFrame:

#define value to split on
x = 20

#define df1 as DataFrame where 'points' is >= 20
df1 = df[df['points'] >= x]. reset_index(drop= True )

print(df1)

 team points rebounds
0 A 22 11
1 B 24 8
2 F 29 5
3 G 31 9

#define df2 as DataFrame where 'points' is < 20
df2 = df[df['points'] < x]. reset_index(drop= True )

print(df2)

 team points rebounds
0 C 19 10
1 D 18 6
2 E 14 6
3 H 16 12

Обратите внимание, что индекс для каждого результирующего DataFrame теперь начинается с 0.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в целое число
Как исправить: ValueError: операнды не могли транслироваться вместе с фигурами

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.