Конвертирование словаря в Pandas DataFrame

Структура DataFrame предоставляет набор инструментов для манипулирования и проверки данных. DataFrames обеспечивают мощную основу для любого проекта по науке о данных, и знание того, как создать их из существующих данных, имеет решающее значение.

В Pandas есть встроенный метод преобразования словаря, ключи которого являются метками столбцов, а значения — это список записей таблицы в DataFrame. Другими словами, Pandas преобразует следующий словарь:

import pandas as pd

dictOne = {"Column A":[1, 2, 3],
		   "Column B":[4, 5, 6],
		   "Column C":[7, 8, 9]}
print(pd.DataFrame(dictOne))
   Column A  Column B  Column C
0         1         4         7
1         2         5         8
2         3         6         9

Как видно из приведенного выше примера, преобразование из словаря в DataFrame было так же просто, как вызов конструктора класса pandas.DataFrame для словаря. Вы не видите вызов метода from_dict, потому что он вызывается автоматически, когда мы ссылаемся на конструктор pandas.DataFrame. Если мы хотим получить доступ к дополнительным функциям для импорта словарей, нам нужно напрямую использовать метод from_dict. Давайте посмотрим, как мы это сделаем.

import pandas as pd

dictOne = {"Column A":[1, 2, 3],
		   "Column B":[4, 5, 6],
		   "Column C":[7, 8, 9]}
print(pd.DataFrame.from_dict(dictOne))
   Column A  Column B  Column C
0         1         4         7
1         2         5         8
2         3         6         9

Теперь предположим, что у нас есть словарь содержащий строки DataFrame. Мы можем импортировать эти данные, используя параметр orient = ‘index’:

import pandas as pd # Don't forget to import!
dictTwo = {"Row 1":[1, 2, 3],
		   "Row 2":[4, 5, 6],
		   "Row 3":[7, 8, 9]}
df = pd.DataFrame.from_dict(dictTwo, orient='index')
print(df)
       0  1  2
Row 1  1  2  3
Row 2  4  5  6
Row 3  7  8  9

Теперь мы видим, что метки словаря становятся именами индексов, а записи списка становятся значениями столбцов. Обратите внимание, что, поскольку список меток столбцов не был указан, Pandas автоматически выбрал вектор чисел в качестве имен столбцов. Мы можем добавить собственный набор имен, используя опцию столбцов.

import pandas as pd # Don't forget to import!
colNames = ["Column A", "Column B", "Column C"]
dictTwo = {"Row 1":[1, 2, 3],
		   "Row 2":[4, 5, 6],
		   "Row 3":[7, 8, 9]}
df = pd.DataFrame.from_dict(dictTwo, orient='index', columns=colNames)
print(df)
        Column A  Column B  Column C
 Row 1         1         2         3
 Row 2         4         5         6
 Row 3         7         8         9

Стоит отметить, что некоторые версии Pandas не включают опцию столбцов. В этих случаях мы можем назначить список имен непосредственно атрибуту columns объекта DataFrame, чтобы получить тот же результат. После того, как вы преобразуете свой словарь в DataFrame, вы добавите свои собственные имена столбцов, используя такой код:

colNames = ["Column A", "Column B", "Column C"]
df.columns = colNames
       Column A  Column B  Column C
Row 1         1         2         3
Row 2         4         5         6
Row 3         7         8         9

Добавить комментарий

Ваш адрес email не будет опубликован.