Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. pandas, импорт данных

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Импорт данных в pandos

Статья в продолжении цикла статей о pandos: статья1, статья2, статья3.

Мы уже знаем, что таблицу DataFrame pandas можно получить непосредственно в программе и из файла csv. Продолжим теперь изучать возможности формирования DataFrame, для полноты добавив также возможности, о которых мы уже знаем.

Пример 1. Формирование в программе

#!/usr/bin/python3
import numpy as np
import pandas as pd
people = {'Фамилия': ['Иванов', 'Петров', 'Сидоров', 'Душечкина'],
'Год рождения': [1999, 1988, 1997, 2001],
'Зарплата': [88000.3, 65000.2, 70000.4, 75000.9]}
fr =  pd.DataFrame(people)
print(fr)

Пример 2. Из файла csv.

#!/usr/bin/python3
import numpy as np
import pandas as pd
fr = pd.read_csv('./Таблица.csv')
print(fr)

Пример 3. Из файла xlsx (или xls)

Предварительно нужно установить библиотеку openpyxl обычным образом

pip3 install openpyxl

После этого

#!/usr/bin/python3
import numpy as np
import pandas as pd
fr = pd.read_excel('./Таблица.xlsx')
print(fr)

Здесь, однако есть важные моменты. Где располагаются данные на листе и на каком листе данные.

Рассмотрим некоторые параметры функции read_excel().

  • index_col - с помощью данного параметра можно указать, что индексом таблицы DataFrame будет конкретный столбец электронной таблицы.
  • skiprows - можно указать сколько строк сверху электронной таблицы следует пропустить.
  • header - по умолчанию header берётся равным 0, т.е. в качестве заголовка берётся первая строка электронной таблицы. Если взять header=None, то в результирующей таблице не будет заголовков.
  • names - можно передать список заголовков результирующей таблицы.
  • usecols - можно указать какие столбцы взять. Например usecols='B:C'.
  • sheet_name - можно указать с какого листа читать. Например sheet_name='Sheet1'.

Пример 4. Импорт из реляционной базы данных

У меня есть целая подборка, посвящённая проектированию и управлению реляционными базами данных, на примере postgresql. Вот эта подборка. Она не закончена и будет пополняться.

Программирование и проектирование реляционных баз данных | programmer's notes (python and more) | Дзен

Здесь же я приведу только пример "вытаскивания" табличных данных из БД PostgreSQL. Нам понадобиться установить библиотеку sqlalchemy:

pip3 install sqlalchemy

Возможно нужно будет установить библиотеку psycopg2. Вот в этой моей статье обсуждается её установка. Ну, а далее можно написать и код

#!/usr/bin/python3
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
user = 'postgres'
password = '123'
host = '192.168.0.30'
port = '5432'
database = 'new'
cs = f"postgresql://{user}:{password}@{host}:{port}/{database}"
engine = create_engine(cs)
sql = "select * from student"
fr = pd.read_sql_query(sql, engine)
print(fr)

Результат выполнения (для базы, которую я использую) см. на рисунке 1.

Рисунок 1. Результат получения табличных данных из postgresql
Рисунок 1. Результат получения табличных данных из postgresql

Ну, пока всё!

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

У вас всё импортное, все данные, а что у вас своё?
У вас всё импортное, все данные, а что у вас своё?