Файлы к уроку:
Ссылки:
Описание
В этом уроке мы научимся создавать DataFrame еще несколькими способами:
- Создать DataFrame из одномерного массива numpy
- Создать DataFrame из двумерного массива numpy
- Создать DataFrame из Series
- Создать DataFrame из Series и словаря
Решение
Сначала нужно импортировать нужные модули.
import numpy as np
import pandas as pd
Создать DataFrame из массива numpy
Создаем датафрейм с помощью pandas.DataFrame. В качестве первого параметра передаем np.arange, второй параметр — имена столбцов.
# Создаем DataFrame из одномерного массива numpy
pd.DataFrame(np.arange(1, 5),
columns=['num'])
Создать DataFrame из двумерного массива numpy
В функцию np.array нужно передать список списков. В каждом списке первый элемент будет являться значением для первого столбца, а второй элемент будет являться значением второго столбца.
# Создаем DataFrame из двумерного массива numpy
jp_albums = pd.DataFrame(np.array([[1980, 'British Steel'],
[1981, 'Point of Entry'],
[1982, 'Screaming for Vengeance'],
[1984, 'Defenders of the Faith']]),
columns=['year', 'album'])
Создать DataFrame из нескольких Series
При создании DataFrame из списка Series нельзя сразу задать имена столбцов.
# Создаем DataFrame из Series
albums_1 = pd.Series([1986, 'Turbo'])
albums_2 = pd.Series([1988, 'Ram it Down'])
jp_albums_2 = pd.DataFrame([albums_1,
albums_2])
jp_albums_2.columns = ['year', 'album']
Создавать DataFrame из словаря серий
Каждая Series — это значения одного столбца.
# Создать DataFrame из Series и словаря
albums_3_name = pd.Series(['Painkiller', 'Jugulator'])
albums_3_year = pd.Series([1990, 1997])
jp_albums_3 = pd.DataFrame({'year': albums_3_name,
'album': albums_3_year})
Что если в одном из столбцов значения есть не для каждой строки
В данном примере для столбца nsongs значения есть не для всех строк. В таком случае в параметре index нужно указать индексы строк, которые нужно заполнить.
# Как произойдет заполнение
albums_4_name = pd.Series(['Demolition', 'Angel of Retribution'])
albums_4_year = pd.Series([2001, 2005])
albums_4_nsongs = pd.Series([13],
index=[0])
jp_albums_4 = pd.DataFrame({'year': albums_4_year,
'album': albums_4_name,
'nsongs': albums_4_nsongs})
Примененные функции
- numpy.arange
- pandas.DataFrame
- numpy.array
- pandas.Series
Курс Pandas Базовый
Номер урока | Урок | Описание |
---|---|---|
1 | Pandas Базовый №1. Создание DataFrame и запись в CSV | Познакомимся с объектом DataFrame. Научимся его создавать двумя разными способами и научимся записывать его в файл. |
2 | Pandas Базовый №2. Создание DataFrame 2 | Изучим еще несколько способов создания объекта DataFrame. В этом уроке мы создадим DataFrame из массива numpy, Series, словаря Series. |
3 | Pandas Базовый №3. Отбор строк и столбцов, Размерность, Импорт CSV | Получить информацию о размере DataFrame, отбор строк и столбцов, индексация. |
4 | Pandas Базовый №4. Операции со столбцами DataFrame | Операции со столбцами в Pandas. Переименование столбцов, добавление новых столбцов, изменить существующий столбец, удаление столбцов. |
5 | Pandas Базовый №5. Операции со строками | Объединение по вертикали методами append и concat, Создание строк вручную, Удаление строк методом drop, Фильтрация строк условием или срезом. |
6 | Pandas Базовый №6. Индексы | Зачем нужны индексы, Как задать индекс, Как пользоваться индексами. |
7 | Pandas Базовый №7. Категории | Что такое категориальные переменные. |