1. Краткое введение
pandas — это высокопроизводительная и простая в использованииструктура данныхианализ данныхБиблиотека инструментов, построенная на основе numpy, которая объединяет множество сторонних библиотек в одной научной вычислительной среде. pandas широко используется в финансах, статистике, социальных науках и многих областях техники для обработки типичных случаев анализа данных.
2. Установка
pandas поддерживает установку conda и pip.
установка конды:
conda install pandas
установка пипа:
pip install pandas
На момент написания этой статьи последним официальным выпуском была версия 0.25.1, выпущенная 22 августа 2019 года. Последняя версия — это версия с исправлением ошибок серии 0.25.x, и ее рекомендуется обновить. Способ обновления следующий:
pip install --upgrade pandas
3. Структура данных
pandas имеет две основные структуры данных:Series
(1-мерный) иDataFrame
(2 измерения).
Две структуры данных описаны ниже.Во-первых, импортируйте pandas в наш скрипт python или блокнот jupyter, который по отраслевому соглашению обозначается как pd.
import pandas as pd
3.1 Series
Серии — это одномерные помеченные массивы, способные хранить данные любого типа (целые числа, строки, числа с плавающей запятой, объекты Python и т. д.). Метки осей вместе называются индексами.
3.1.1 Создать серию
Создать из списка:
data = [1, 2, 3]
pd.Series(data)
0 1
1 2
2 3
dtype: int64
Создано из словаря:
data = {'a': 1, 'b': 2, 'c': 3}
pd.Series(data)
a 1
b 2
c 3
dtype: int64
Установите индекс (метку) через параметр index:
data = [1, 2, 3]
index = ['a', 'b', 'c']
pd.Series(data, index=index)
a 1
b 2
c 3
dtype: int64
Создать по скаляру (то же значение) и установить индекс (метка, не может повторяться):
data = 0
index = ['a', 'b', 'c']
pd.Series(data, index=index)
a 0
b 0
c 0
dtype: int64
3.1.2 Доступ к сериям
s = pd.Series([10, 100, 1000], index=['a', 'b', 'c'])
s
a 10
b 100
c 1000
dtype: int64
Доступ к массиву:
print(s[0], s[1], s[2])
10 100 1000
Доступ к словарю:
print(s['a'], s['b'], s['c'])
10 100 1000
Можно увидеть соответствующую связь между двумя методами доступа:
print(s[0] == s['a'], s[1] == s['b'], s[2] == s['c'])
True True True
3.2 DataFrame
DataFrame — это двумерная помеченная структура данных с возможными столбцами разных типов. Его можно сравнить с электронной таблицей, таблицей SQL или словарем объектов Series. Это также наиболее часто используемый объект панд.
3.2.1 Создание фрейма данных
Создать из словаря списков:
data = {
'col1': [1, 2, 3],
'col2': [4, 5, 6],
'col3': [7, 8, 9]
}
pd.DataFrame(data)
col1 | col2 | col3 | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
Создано из словаря серии:
s1 = pd.Series([1, 2, 3], index=['row1', 'row2', 'row3'])
s2 = pd.Series([4, 5, 6], index=['row2', 'row3', 'row4'])
s3 = pd.Series([7, 8, 9], index=['row3', 'row4', 'row5'])
data = {
'col1': s1,
'col2': s2,
'col3': s3
}
pd.DataFrame(data)
col1 | col2 | col3 | |
---|---|---|---|
row1 | 1.0 | NaN | NaN |
row2 | 2.0 | 4.0 | NaN |
row3 | 3.0 | 5.0 | 7.0 |
row4 | NaN | 6.0 | 8.0 |
row5 | NaN | NaN | 9.0 |
Создать из списка словарей:
data = [
{'col1': 1, 'col2': 2, 'col3': 3},
{'col1': 2, 'col2': 3, 'col3': 4},
{'col1': 3, 'col2': 4, 'col3': 5}
]
pd.DataFrame(data, index=['row1', 'row2', 'row3'])
col1 | col2 | col3 | |
---|---|---|---|
row1 | 1 | 2 | 3 |
row2 | 2 | 3 | 4 |
row3 | 3 | 4 | 5 |
Создается из двумерного списка:
data = [
[1, 2, 3],
[2, 3, 4],
[3, 4, 5]
]
pd.DataFrame(data, index=['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3'])
col1 | col2 | col3 | |
---|---|---|---|
row1 | 1 | 2 | 3 |
row2 | 2 | 3 | 4 |
row3 | 3 | 4 | 5 |
3.2.2 Доступ к кадрам данных
df = pd.DataFrame([[1, 4, 7], [2, 5, 8], [3, 6, 9]],
index=['row1', 'row2', 'row3'],
columns=['col1', 'col2', 'col3'])
df
col1 | col2 | col3 | |
---|---|---|---|
row1 | 1 | 4 | 7 |
row2 | 2 | 5 | 8 |
row3 | 3 | 6 | 9 |
Доступ к столбцам по метке столбца:
df['col1']
row1 1
row2 2
row3 3
Name: col1, dtype: int64
Доступ к строкам по меткам строк:
df.loc['row1']
col1 1
col2 4
col3 7
Name: row1, dtype: int64
Доступ к строкам по целому числу:
df.iloc[0]
col1 1
col2 4
col3 7
Name: row1, dtype: int64
Выберите строки путем нарезки:
df[1:]
col1 | col2 | col3 | |
---|---|---|---|
row2 | 2 | 5 | 8 |
row3 | 3 | 6 | 9 |
3.2.3 Транспонирование кадра данных
Поменяйте местами строки и столбцы, подобно перемещению матрицы в линейной алгебре.
df.T
row1 | row2 | row3 | |
---|---|---|---|
col1 | 1 | 2 | 3 |
col2 | 4 | 5 | 6 |
col3 | 7 | 8 | 9 |
Вам также может понравиться
- [1] Краеугольный камень научных вычислений Python numpy (1)
- [2] набор инструментов для визуализации данных python matplotlib
Нелегко настаивать на написании колонки. Если вы считаете, что эта статья полезна для вас, не забудьте поставить лайк. Спасибо за поддержку!
- Персональный сайт:kenblog.top
- сайт на гитхабе:kenblikylee.github.io
Отсканируйте QR-код в WeChat, чтобы получить оригиналы новейших технологий