Добавить в корзинуПозвонить
Найти в Дзене
ChinovnickBox

Создание pandas dataframe из csv файла

Первое, что приходит на ум опытным разработчикам при постановке задачи чтения json файлов с целью создания объекта типа dataframe - это использование встроенных инструментов библиотеки pandas, таких как read_json. К сожалению этот способ не всегда работает корректно, а так-же требует хорошего запаса теоретических знаний. Тем-более с целью корректного считывания файлов нам необходимо указать параметры чтения файлов, различных для каждого подвида json файлов, которых существует множество. Невзирая на то, что в дальнейшем мы будем разбирать другой способ открытия и преобразования json файлов, мне кажется необходимым оставить ссылку на источник, в котором содержится описание параметров метода read_json. Ссылка на страницу официальной документации библиотеки pandas: https://pandas.pydata.org/docs/reference/api/pandas.read_json.html Наша задача Задача выполнения описанного в ходе работы кода заключается в чтении json файла и дальнейшего преобразования его в csv, с целью создания из него
Оглавление

Первое, что приходит на ум опытным разработчикам при постановке задачи чтения json файлов с целью создания объекта типа dataframe - это использование встроенных инструментов библиотеки pandas, таких как read_json. К сожалению этот способ не всегда работает корректно, а так-же требует хорошего запаса теоретических знаний. Тем-более с целью корректного считывания файлов нам необходимо указать параметры чтения файлов, различных для каждого подвида json файлов, которых существует множество.

Параметры orient для разных типов файлов json, передаваемые в read_json
Параметры orient для разных типов файлов json, передаваемые в read_json

Невзирая на то, что в дальнейшем мы будем разбирать другой способ открытия и преобразования json файлов, мне кажется необходимым оставить ссылку на источник, в котором содержится описание параметров метода read_json. Ссылка на страницу официальной документации библиотеки pandas:

https://pandas.pydata.org/docs/reference/api/pandas.read_json.html

Наша задача

Задача выполнения описанного в ходе работы кода заключается в чтении json файла и дальнейшего преобразования его в csv, с целью создания из него объекта типа dataframe.

Ход работы:

С целью чтения файлов мы будем использовать метод open в контексте. Для этого выполним порядок действий:

Импортируем библиотеки

import pandas as pd
import numpy as np
import json
import csv

Прочитаем json файл

with open('Адрес_файла.json', 'r') as f:
data = json.load(f)
names = data['intents']

with - открывает контекст исполнения кода

'r' - модификатор доступа для чтения файла (read). Так-же существует модификатор 'w'(write), который открывает файл с возможностью редактирования или вовсе позволяет создать новый файл.

as f - значит, что мы сохранили прочитанный файл как переменную 'f', которая видна только в контексте программы.

Строчка data = json.load(f) позволяет нам сохранить файл в переменную.

names = data['intents'] - сохраняем в библиотеку верхний ключ json файла

Отрывок json файла типа "Ключ - Значение"
Отрывок json файла типа "Ключ - Значение"

Создадим и заполним csv файл

with open('Адрес_или_название_файла.csv', 'w') as f:
fieldnames = names[0].keys()
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
for name in names:
writer.writerow(name)

with open('Адрес_или_название_файла.csv', 'w') as f: - на первой строке мы создаём контекст и открывем файл. Так как мы используем модификатор доступа "w"(write), то файл в случае необходимости может быть создан самостоятельно.

fieldnames = names[0].keys() - во второй строке мы сохраняем в переменную ключи(заголовки).

writer = csv.DictWriter(f, fieldnames=fieldnames) - записываем csv файл как список словарей, передав в него файловый объект(f) и заголовки полей csv файла.

writer.writeheader() - Позволяет внести названия столбцов в csv файл. (Если мы этого не сделаем, то первые элементы будут в качестве заголовков строк)

for name in names: writer.writerow(name) - данный цикл позволяет непосредственно заполнить csv файл значениями.

Наконец, создаём наш DataFrame

df = pd.read_csv('адрес_файла.csv')

Создаём dataframe из csv файла

Пример выполнения программы

-3

Заключение

Я надеюсь, что мне удалось донести до вас принцип использования инструментов для чтения json файлов и дальнейшего его преобразования в dataframe.