Часть 1: Серия и DataFrame
Как установить
pip install pandas
Как пользоваться библиотекой
import pandas as pd
Ряд
- 1 массив измерений с одинаковыми элементами типа данных
кадр данных
- 2-мерный массив с различными элементами типа данных для каждого столбца
- Ориентирован на столбцы
Создать серию
- Напрямую
ser = pd.Series([10, 20, 30, 40]) type(ser) >> <class 'pandas.core.series.Series'> ser.index >> RangeIndex(start=0, stop=4, step=1)
- pd.Series() : поместить список для создания серии
2. Индекс серии для маркировки
grades = ['A', 'B+', 'A+', 'A'] ser = pd.Series(grades, index=['sam', 'june', 'max', 'july']) print(ser[0], ser[2]) # access with int index print(ser['sam'], ser['max']) # access with label >> A A+ ser.index >> Index(['sam', 'june', 'max', 'july'], dtype='object')
3. Словарь сериалов
grades = {'sam':'A', 'june':'B+', 'max':'A+', 'july':'A'} ser = pd.Series(grades)
Создать фрейм данных
- Без метки столбца
import pandas as pd import numpy as np df = pd.DataFrame(np.zeros((4,3))) type(df) >> <class 'pandas.core.frame.DataFrame'>
2. С меткой столбца
import pandas as pd import numpy as np classes = ['science', 'english', 'math'] df = pd.DataFrame(np.zeros((4,3)), columns = classes)
3. Использование словарей и списков
import pandas as pd names = ['sam', 'june', 'max', 'july'] korean = [100, 95, 90, 85] english = [85, 90, 95, 100] math = [90, 85, 100, 95] df = pd.DataFrame({'name':names, 'korean':korean, 'english':english, 'math':math})
4. Индекс строки для метки
import pandas as pd names = ['sam', 'june', 'max', 'july'] korean = [100, 95, 90, 85] english = [85, 90, 95, 100] math = [90, 85, 100, 95] df = pd.DataFrame({'korean':korean, 'english':english, 'math':math}, index=names)
Доступ к фрейму данных
- Указатель столбца к ряду
# continued name_ser = df['name'] type(name_ser) >> <class 'pandas.core.series.Series'>
2. Индекс столбца для DataFrame
# continued classes_df = df[['name', 'math']] type(classes_df) >> <class 'pandas.core.frame.DataFrame'>
3. Трансляция
# continued df['english'] = df['english'] + 10
4. Получить строку
# continued print(df[1:2]) print(df[2:])
5. Получить элемент
# Continued # Column - Row # Element print(df['korean'][1]) # Row - Column # Series print(df[1:2]['korean'])
6. Логическое индексирование
# continued (4) Row Index to Label bool_index = df['math'] > 90 print(bool_index) print(df[bool_index])
bool_index = df > 90 print(bool_index) print(df[bool_index])
Расширенное индексирование DataFrame
- Ориентированный на строку
- loc: индексация ярлыков
- iloc : индексация int
df.loc[row index] df.loc[rwo index, column index] df.loc[row slicing] df.loc[boolean list]
Пример для расширенного локального индексирования
# continued (4) Row Index to Label df.loc['sam']
df.loc[['sam', 'max']] df.loc['sam', 'korean']
df.loc['june':'july'] # includes july! df.loc[df['korean']>90]
df.loc[['sam', 'june'],['math','english']] df.loc[df['math']>90,['korean','english']]
Пример для iрасширенного индексирования
# continued (4) Row Index to Label df.iloc[0] df.iloc[[0,2]] df.iloc[0,0]
df.iloc[0:2] # does NOT include max! df.iloc[0:2, 1:3] df.iloc[[0,3],[1,2]]
df.iloc[0]>90 df.iloc[0][df.iloc[0]>90] # sam's subject over 90