Создание пустого DataFrame Pandas и добавление данных
В этой статье вы узнаете, как создать пустой DataFrame в Pandas и как добавлять в него данные. В частности, вы научитесь создавать DataFrame, создавать его с заголовками столбцов, добавлять строки по одной и добавлять строки с помощью цикла.
Оглавление
Создание пустого DataFrame Pandas
Для начала импортируем библиотеку Pandas под псевдонимом pd
:
import pandas as pd
Создание полностью пустого DataFrame Pandas очень простое. Мы просто создаём объект DataFrame, не передавая в него никаких данных:
df = pd.DataFrame()
print(df)
Из вывода видно, что DataFrame пустой.
Однако мы также можем проверить, является ли он пустым, с помощью атрибута Pandas .empty
, который возвращает булево значение, указывающее, пуст ли DataFrame:Из вывода видно, что DataFrame пустой.
>> print(df.empty)
True
Создание пустого DataFrame Pandas с заголовками столбцов
Могут возникнуть ситуации, когда вы уже знаете, какие столбцы хотите иметь в DataFrame, но пока не располагаете данными для них (подробнее об этом — в разделе о добавлении данных в пустой DataFrame ниже).
Для этого мы можем использовать параметр columns=
, передав в него список названий столбцов при создании объекта DataFrame. Давайте создадим DataFrame со следующими столбцами: Name (Имя), Age (Возраст), Birth City (Город рождения) и Gender (Пол):
df = pd.DataFrame(columns=['Name', 'Age', 'Birth City', 'Gender'])
print(df)
This prints out the following, indicating that we now have an empty dataframe but with columns attached to it:
Empty DataFrame
Columns: [Name, Age, Birth City, Gender]
Index: []
Создание пустого DataFrame Pandas с заголовками столбцов и индексами
Аналогично описанной выше ситуации, могут быть случаи, когда вы заранее знаете не только названия столбцов, но и значения индексов DataFrame, однако данные пока отсутствуют.
Мы можем создать такой DataFrame, указав как параметр columns=
, так и параметр index=
. Давайте создадим тот же DataFrame, что и выше, но используем столбец Name
в качестве индекса и укажем несколько примерных индексов:
df = pd.DataFrame(
columns=['Age', 'Birth City', 'Gender'],
index=['Jane', 'Melissa', 'John', 'Matt'])
print(df)
Теперь, технически, это уже не совсем пустой DataFrame. Это просто DataFrame без данных. Мы можем проверить это с помощью атрибута .empty
:
print(df.empty)
Это возвращает False
.
Добавление данных в пустой DataFrame
Теперь, когда у нас есть DataFrame с заголовками столбцов и индексами, мы можем использовать .loc
для добавления данных. Если вы хотите узнать больше о методе .loc
, ознакомьтесь с моим руководством по этой ссылке.
Давайте добавим данные в запись с индексом Jane
:
df.loc['Jane',:] = [23, 'London', 'F']
print(df)
Добавление данных в пустой DataFrame Pandas
Аналогично добавлению строк по одной с помощью метода .loc
, мы также можем использовать метод .append()
для добавления строк.
Метод .append()
работает следующим образом: он добавляет один DataFrame к другому.
Давайте добавим ту же строку, что и выше, с помощью метода append
:
df2 = pd.DataFrame(
[['Jane', 23, 'London', 'F']],
columns=['Name', 'Age', 'Birth City', 'Gender']
)
df = df.append(df2)
print(df)
Чтобы ускорить процесс, мы также можем использовать цикл for
для добавления данных. Это рассмотрено ниже.
Добавление данных в пустой DataFrame Pandas с помощью цикла
Могут возникнуть ситуации, когда необходимо добавить несколько наборов данных в DataFrame. Это можно упростить с помощью цикла for
, например, для чтения нескольких файлов и их объединения. Если вы хотите узнать больше о циклах for
в Python, ознакомьтесь с моей статьёй по этой ссылке.
В приведённом ниже примере мы будем работать с разными списками, но метод работает одинаково хорошо и при чтении данных из нескольких файлов.
Мы используем аргумент ignore_index=True
, чтобы убедиться, что создаются новые индексы. В противном случае при объединении нескольких DataFrame индексы могут дублироваться.
df = pd.DataFrame(
columns=['Name', 'Age', 'Birth City', 'Gender'])
people = [
['Jane', 23, 'London', 'F'],
['Melissa', 45, 'Paris', 'F'],
['John', 35, 'Toronto', 'M']
]
for person in people:
temporary_df = pd.DataFrame([person], columns=['Name', 'Age', 'Birth City', 'Gender'])
df = df.append(temporary_df, ignore_index=True)
print(df)
Заключение
В этой статье вы узнали, как создать пустой DataFrame, как с указанием столбцов, так и без них. После этого вы научились добавлять данные в пустой DataFrame — как единожды, так и с использованием цикла for
.
Чтобы узнать больше о классе pandas.DataFrame
, ознакомьтесь с официальной документацией по этой ссылке.
Для получения дополнительной информации о методе .append()
см. официальную документацию по этой ссылке.
Last updated