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

Программирование на языке Python. Библиотека pandas, начало

Оглавление

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

Начальные знания о библиотеке pandas для python

О библиотеке pandas

Новая библиотека pandas. Сразу скажу - удобная. Много всяких интересных возможностей, связанных с обработкой данных, которые могут быть представлены в табличном формате. Будет серия статей о ней. Давайте начинать. Сегодня всё простое.

Понадобиться формат файлов csv. У меня есть статья об этом формате, можете посмотреть, она здесь.

Важно знать следующее: pandas это надстройка над библиотекой NumPy. Если у вас этой библиотеки нет - установите её

pip3 install numpy (или в Windows pip install numpy)

Теперь можно устанавливать pandas

pip3 install pandas (или в Windows pip install pandas)

В начале программ, использующих библиотеку pandas всегда будут стоять две строки

import numpy as np
import pandas as pd

Теперь приступим к примерам

Библиотеке pandas два основных класса: Series - одномерная последовательность данных и DataFrame - аналог таблицы.

Простые примеры использования pandas. Series

Остановимся на Series.

Несколько слов о типах данных, которые могут храниться в Series. Кстати, в одной последовательности могут стоять разные типы данных. Вот несколько типов, которые нам понадобятся в начале:

int64 - для хранения целых типов, float64 - для хранения вещественных типов (с плавающей точкой), object - для хранения текстовой (строковой) информации, bool - принимает значение True/False, datetime64 - для хранения даты и времени.

Для создания Series можно использовать обычный список.

Пример

#!/usr/bin/python3
import numpy as np
import pandas as pd
sr = pd.Series([2, 17, -11, -1, 6])
print(sr)    # вывод элементов с индексами и типом
print(sr[2]) # вывод элемента
sr[1] = 3    # присвоение элемента
print(sr)

Результат выполнения
0     2
1    17
2   -11
3    -1
4     6
dtype: int64
-11
0     2
1     3
2   -11
3    -1
4     6
dtype: int64

Как видим print() здесь настроен именно на данные pandas. Выводятся индексы элементов, элементы и основной тип. К элементу можно обращаться по индексу.

Следующий пример демонстрирует добавление элемента к Series. Можно использовать _append() или concat(). Последний способ более универсальный и рекомендуемый.

#!/usr/bin/python3
import numpy as np
import pandas as pd
sr = pd.Series([2, 17, -11, -1, 6])
print(sr)
sr1 = pd.Series([22])
sr = sr._append(sr1, ignore_index=True)
sr1 = pd.Series([-3])
sr = pd.concat([sr, sr1, sr1])
print(sr)

Результат выполнения

0     2
1    17
2   -11
3    -1
4     6
dtype: int64
0     2
1    17
2   -11
3    -1
4     6
5    22
0    -3
0    -3
dtype: int64

Как видим всё достаточно просто, а метод concat() позволяет добавлять списком.

Удаление элементов в Series осуществляется методом drop(). Аргументом удаления является список индексов элементов

Пример

#!/usr/bin/python3
import numpy as np
import pandas as pd
sr = pd.Series([2, 17, -11, -1, 6])
print(sr)
sr = sr.drop([2, 3])
print(sr)

Результат выполнения

0     2
1    17
2   -11
3    -1
4     6
dtype: int64
0     2
1    17
4     6
dtype: int64

Обратите внимание на корректное удаление элементов по индексу

Простые примеры использования pandas. DataFrame

Создание объекта DataFrame (таблицы) можно разными способами: программно, из таблиц Excel, из файлов csv, из баз данных.

Пример

#!/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)
print(fr['Фамилия'])
fr1 = fr.sort_values('Год рождения', ascending=True)
print(fr1)
print(fr['Фамилия'][1])

Результат выполнения на рисунке 1

Рисунок 1. Вывод программы
Рисунок 1. Вывод программы

Пояснения к программе.

Как видим, таблица создаётся из словаря, элементами которого является список, а название столбцов - ключами словаря. У каждой строки есть свой индекс (крайний справа столбик).

Обратим внимание на следующее:

1. Функция print() аккуратно работает с DataFrame.
2. Столбец таблицы по сути является объектом типа
Series.
3. Можно обратиться непосредственно к элементу таблицы, указав название столбца и индекс в столбце.
4. Метод
sort_values() позволяет сортировать таблицу по указанному столбцу.

В заключении посмотрим, как создать объект DataFrame из файла csv.

#!/usr/bin/python3
import numpy as np
import pandas as pd
df = pd.read_csv('./Таблица.csv')
print(df) # вывести таблицу
print(df.head(2)) # вывести первые две строки
print(df.tail(2)) # вывести последние две строки
print(df.dtypes) # вывести типы данных таблицы
# сортировка таблицы по столбцу 'Зарплата'
df1 = df.sort_values('Зарплата', ascending=True)
print(df1)

Результат выполнения программы см. на рисунке 2

Рисунок 2. Вывол программы
Рисунок 2. Вывол программы

Пояснение к программе

1. Методы head() и tail() выводят возвращают указанное количество строк таблицы с начала и с конца.
2. Метода
read_csv() читает из csv-файла таблицу и создает объект DataFrame.

Ну, пока всё! Следующая статья по pandas здесь.

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

Идите и принесите мне данные в виде таблицы
Идите и принесите мне данные в виде таблицы