Доброго времени суток, читатели, зрители моего канала 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. Функция 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
Пояснение к программе
1. Методы head() и tail() выводят возвращают указанное количество строк таблицы с начала и с конца.
2. Метода read_csv() читает из csv-файла таблицу и создает объект DataFrame.
Ну, пока всё! Следующая статья по pandas здесь.
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.