Pandas: как разделить dataframe по значению столбца
Вы можете использовать следующий базовый синтаксис, чтобы разделить 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]
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: разделение DataFrame Pandas по значению столбца
Предположим, у нас есть следующий DataFrame pandas:
import pandas as pd #createDataFrame 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 to 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: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 to 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: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 to 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:16:12
Обратите внимание, что индекс каждого результирующего DataFrame теперь начинается с 0.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:
Как исправить ошибку KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в int.
Как исправить: ValueError: операнды не могут быть переданы с помощью фигур.