Как создать Pandas DataFrame

В этом кратком руководстве мы рассмотрим два метода создания Pandas DataFrame: ввод значений вручную и создание датафрейма на основе значений, импортированных из файла (например, CSV).

Примечание редакции Pythonist: о том, что собой представляет Pandas, можно почитать в статье «Полное руководство по Pandas для начинающих».

Создание Pandas DataFrame путем ввода значений вручную

Чтобы создать Pandas DataFrame в Python, можно следовать этому общему шаблону:

import pandas as pd

data = {'first_column': ['first_value', 'second_value', ...],
        'second_column': ['first_value', 'second_value', ...],
        ....
        }

df = pd.DataFrame(data)

print(df)

Обратите внимание, что использовать кавычки вокруг числовых значений не нужно (если только вы не хотите получить эти значения в виде строк).

Теперь давайте на простом примере рассмотрим, как применить этот шаблон.

Для начала предположим, что у вас есть следующие данные о товарах, и вы хотите захватить эти данные с помощью датафрейма Pandas:

product_nameprice
laptop1200
printer150
tablet300
desk450
chair200

Для создания DataFrame для нашего примера вы можете использовать следующий код:

import pandas as pd

data = {'product_name': ['laptop', 'printer', 'tablet', 'desk', 'chair'],
        'price': [1200, 150, 300, 450, 200]
        }

df = pd.DataFrame(data)

print(df)

Запустите этот код в Python, и вы получите такой DataFrame:

  product_name  price
0       laptop   1200
1      printer    150
2       tablet    300
3         desk    450
4        chair    200

Как видите, каждая строка обозначена числом (также известным как индекс), начиная с 0. В качестве альтернативы вы можете назначить другое значение/имя для обозначения каждой строки.

Например, в приведенном ниже коде мы добавили index=['product_1', 'product_2', 'product_3', 'product_4', 'product_5']:

import pandas as pd

data = {'product_name': ['laptop', 'printer', 'tablet', 'desk', 'chair'],
        'price': [1200, 150, 300, 450, 200]
        }

df = pd.DataFrame(data, index=['product_1', 'product_2', 'product_3', 'product_4', 'product_5'])

print(df)

Теперь при выводе датафрейма вы увидите новый индекс:

          product_name  price
product_1       laptop   1200
product_2      printer    150
product_3       tablet    300
product_4         desk    450
product_5        chair    200

Импорт значений из CSV-файла для создания Pandas DataFrame

Для импорта данных из CSV-файла в Python для создания DataFrame можно использовать следующий шаблон:

import pandas as pd

data = pd.read_csv(r'Path where the CSV file is stored\File name.csv')
df = pd.DataFrame(data)

print(df)

Допустим, у вас есть следующие данные, хранящиеся в CSV-файле products:

product_nameprice
laptop1200
printer150
tablet300
desk450
chair200

В приведенном ниже коде Python вам нужно будет изменить путь, указав местонахождение CSV-файла на вашем компьютере.

Например, пусть путь к нашему CSV-файлу выгдядит так: 'C:\Users\Ron\Desktop\products.csv'.

Вот полный код создания датафрейма из данных в нашем файле:

import pandas as pd

data = pd.read_csv(r'C:\Users\Ron\Desktop\products.csv')
df = pd.DataFrame(data)

print(df)

Запустив этот код, вы увидите тот же Pandas DataFrame:

  product_name  price
0       laptop   1200
1      printer    150
2       tablet    300
3         desk    450
4        chair    200

Такой датафрейм можно создать и путем импорта Excel-файла.

Поиск максимального значения в DataFrame

Поместив данные в Pandas DataFrame, вы можете осуществлять различные манипуляции с ними. Например, подсчитывать статистику.

Допустим, вы хотите найти максимальную цену среди цен всех продуктов в датафрейме.

Конечно, сейчас вы можете это сделать, просто бегло просмотрев цифры на экране, но на практике вы будете работать с большими наборами данных.

Чтобы найти максимальную цену, нужно добавить в наш код следующую строку (и не забыть вывести результат):

max_price = df['price'].max()

Вот полный код:

import pandas as pd

data = {'product_name': ['laptop', 'printer', 'tablet', 'desk', 'chair'],
        'price': [1200, 150, 300, 450, 200]
        }

df = pd.DataFrame(data)

max_price = df['price'].max()
print(max_price)

Запустив этот код, вы получите значение 1200, которое и является максимальной ценой в нашем датафрейме.

Узнать больше о создании DataFrame можно в документации Pandas.

Перевод статьи «How to Create Pandas DataFrame in Python».