Создание пустого DataFrame Pandas и добавление данных
В этой статье вы узнаете, как создать пустой DataFrame в Pandas и как добавлять в него данные. В частности, вы научитесь создавать DataFrame, создавать его с заголовками столбцов, добавлять строки по одной и добавлять строки с помощью цикла.
Оглавление
Создание пустого DataFrame Pandas
Для начала импортируем библиотеку Pandas под псевдонимом pd:
import pandas as pdСоздание полностью пустого DataFrame Pandas очень простое. Мы просто создаём объект DataFrame, не передавая в него никаких данных:
df = pd.DataFrame()
print(df)Empty DataFrame
Columns: []
Index: []Из вывода видно, что 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) Age Birth City Gender
Jane NaN NaN NaN
Melissa NaN NaN NaN
John NaN NaN NaN
Matt NaN NaN NaNТеперь, технически, это уже не совсем пустой DataFrame. Это просто DataFrame без данных. Мы можем проверить это с помощью атрибута .empty:
print(df.empty)Это возвращает False.
Добавление данных в пустой DataFrame
Теперь, когда у нас есть DataFrame с заголовками столбцов и индексами, мы можем использовать .loc для добавления данных. Если вы хотите узнать больше о методе .loc, ознакомьтесь с моим руководством по этой ссылке.
Давайте добавим данные в запись с индексом Jane:
df.loc['Jane',:] = [23, 'London', 'F']
print(df) Age Birth City Gender
Jane 23 London F
Melissa NaN NaN NaN
John NaN NaN NaN
Matt NaN NaN NaNДобавление данных в пустой 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) Name Age Birth City Gender
0 Jane 23 London FЧтобы ускорить процесс, мы также можем использовать цикл 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) Name Age Birth City Gender
0 Jane 23 London F
1 Melissa 45 Paris F
2 John 35 Toronto MЗаключение
В этой статье вы узнали, как создать пустой DataFrame, как с указанием столбцов, так и без них. После этого вы научились добавлять данные в пустой DataFrame — как единожды, так и с использованием цикла for.
Чтобы узнать больше о классе pandas.DataFrame, ознакомьтесь с официальной документацией по этой ссылке.
Для получения дополнительной информации о методе .append() см. официальную документацию по этой ссылке.
Последнее обновление