Как разделить фрейм данных Pandas на несколько фреймов данных


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

#split DataFrame into two DataFrames at row 6
df1 = df.iloc [:6]
df2 = df.iloc [6:]

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

Пример 1: разделить Pandas DataFrame на два DataFrames

Следующий код показывает, как разделить один кадр данных pandas на два кадра данных:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [1, 1, 1, 3, 3, 4, 5, 5, 5, 6, 7, 9],
 'y': [5, 7, 7, 9, 12, 9, 9, 4, 3, 3, 1, 10]})

#view DataFrame
df

 x y
0 1 5
1 1 7
2 1 7
3 3 9
4 3 12
5 4 9
6 5 9
7 5 4
8 5 3
9 6 3
10 7 1
11 9 10

#split original DataFrame into two DataFrames
df1 = df.iloc [:6]
df2 = df.iloc [6:]

#view resulting DataFrames
print(df1)

 x y
0 1 5
1 1 7
2 1 7
3 3 9
4 3 12
5 4 9

print(df2)
 x y
6 5 9
7 5 4
8 5 3
9 6 3
10 7 1
11 9 10

Обратите внимание, что df1 содержит первые шесть строк исходного DataFrame, а df2 содержит последние шесть строк исходного DataFrame.

Пример 2: Разделение Pandas DataFrame на несколько DataFrames

Следующий код показывает, как разделить pandas

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [1, 1, 1, 3, 3, 4, 5, 5, 5, 6, 7, 9],
 'y': [5, 7, 7, 9, 12, 9, 9, 4, 3, 3, 1, 10]})

#split into three DataFrames
df1 = df.iloc [:3]
df2 = df.iloc [3:6]
df3 = df.iloc [6:]

#view resulting DataFrames
print(df1)

 x y
0 1 5
1 1 7
2 1 7

print(df2)

 x y
3 3 9
4 3 12
5 4 9

print(df3)

 x y
6 5 9
7 5 4
8 5 3
9 6 3
10 7 1
11 9 10

В этом примере мы решили разделить один DataFrame на три DataFrames, но, используя этот синтаксис, мы можем разделить DataFrame pandas на любое количество DataFrames, которое нам нужно.

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

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

Как добавить два кадра данных Pandas
Как удалить столбцы в Pandas DataFrame
Как выбрать уникальные строки в Pandas DataFrame