мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияПоследняя версияСледующая версия справа и слева | ||
python:week20 [01/10/2018 03:37] – [Создание объекта] ybezrukov | python:week20 [08/10/2018 01:21] – [Фильтрация с помощью логических выражений] ybezrukov | ||
---|---|---|---|
Строка 149: | Строка 149: | ||
<code python> | <code python> | ||
| | ||
- | print(df.index()) | + | print(df.index) |
- | print(df.columns()) | + | print(df.columns) |
- | print(df.values()) | + | print(df.values) |
</ | </ | ||
Строка 178: | Строка 178: | ||
</ | </ | ||
- | < | + | < |
| | ||
A 0.469112 | A 0.469112 | ||
Строка 184: | Строка 184: | ||
C | C | ||
D | D | ||
+ | </ | ||
+ | |||
+ | Упорядочить по направлению (например, | ||
+ | |||
+ | <code python> | ||
+ | print(df.sort_index(axis=1, | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | | ||
+ | 2013-01-01 -1.135632 -1.509059 -0.282863 | ||
+ | 2013-01-02 -1.044236 | ||
+ | 2013-01-03 | ||
+ | 2013-01-04 | ||
+ | 2013-01-05 -1.087401 | ||
+ | 2013-01-06 | ||
+ | </ | ||
+ | |||
+ | Упорядочить по значению элементов столбца (например по столбцу B) | ||
+ | |||
+ | <code python> | ||
+ | print(df.sort_values(by=' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | | ||
+ | 2013-01-03 -0.861849 -2.104569 -0.494929 | ||
+ | 2013-01-04 | ||
+ | 2013-01-01 | ||
+ | 2013-01-02 | ||
+ | 2013-01-06 -0.673690 | ||
+ | 2013-01-05 -0.424972 | ||
+ | </ | ||
+ | |||
+ | |||
+ | Строки можно перебрать и с помощью цикла for, для этого нужно воспользоваться функцией iterrows | ||
+ | |||
+ | <code python> | ||
+ | for index,row in df.iterrows(): | ||
+ | print(row[' | ||
+ | </ | ||
+ | |||
+ | ======= Выборки ======= | ||
+ | |||
+ | ===== Получение ===== | ||
+ | |||
+ | Выбор данных из колонок и стобцов очень похож на работу с списками. Одна колонка | ||
+ | |||
+ | <code python> | ||
+ | print(df[' | ||
+ | </ | ||
+ | |||
+ | Диапазон строк по номеру | ||
+ | |||
+ | <code python> | ||
+ | print(df[0: | ||
+ | </ | ||
+ | Диапазон строк по значению индекса | ||
+ | <code python> | ||
+ | |||
+ | print(df[' | ||
+ | </ | ||
+ | |||
+ | ===== Выборка по метке ===== | ||
+ | Для сечения таблицы по метке используется функция loc, например, | ||
+ | <code python> | ||
+ | print(df.loc[dates[0]]) | ||
+ | </ | ||
+ | Никто не мешает нам выбрать одновременно по двум осям - строкам и столбцам. Выберем подтаблицу, | ||
+ | |||
+ | |||
+ | <code python> | ||
+ | print(df.loc[:, | ||
+ | </ | ||
+ | |||
+ | Или только три строки | ||
+ | |||
+ | <code python> | ||
+ | print(df.loc[' | ||
+ | </ | ||
+ | |||
+ | Одно значение из таблицы получим с помощью | ||
+ | |||
+ | <code python> | ||
+ | print(df.loc[dates[0],' | ||
+ | </ | ||
+ | |||
+ | ===== Выборка по позиции ===== | ||
+ | |||
+ | Для получения по позиции или по номеру используется функция iloc. Возьмем третью строку | ||
+ | |||
+ | <code python> | ||
+ | print(df.iloc[3]) | ||
+ | </ | ||
+ | |||
+ | Или строки с третьей по четвертую и столбцы с нулевого по первый (внимание, | ||
+ | |||
+ | <code python> | ||
+ | print(df.iloc[3: | ||
+ | </ | ||
+ | |||
+ | Вместо диапазонов можно указать конкретные строки или столбцы, | ||
+ | |||
+ | <code python> | ||
+ | print(df.iloc[df.iloc[[1, | ||
+ | </ | ||
+ | |||
+ | Или же, например, | ||
+ | <code python> | ||
+ | print(df.iloc[df.iloc[1: | ||
+ | </ | ||
+ | Аналогично со столбцами | ||
+ | <code python> | ||
+ | print(df.iloc[:, | ||
+ | </ | ||
+ | |||
+ | ===== Фильтрация с помощью логических выражений ===== | ||
+ | |||
+ | Выберем из таблица все строки, | ||
+ | |||
+ | <code python> | ||
+ | print(df[df.A > 0]) | ||
+ | </ | ||
+ | |||
+ | Или только положительные данные во всей таблице | ||
+ | |||
+ | <code python> | ||
+ | print(df[df > 0]) | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | | ||
+ | 2013-01-01 | ||
+ | 2013-01-02 | ||
+ | 2013-01-03 | ||
+ | 2013-01-04 | ||
+ | 2013-01-05 | ||
+ | 2013-01-06 | ||
+ | </ | ||
+ | |||
+ | Обратите внимание, | ||
+ | |||
+ | Функция isin сверяет значения из строки или столбца со списком, | ||
+ | |||
+ | <code python> | ||
+ | df2 = df.copy() # функция copy копирует данные из одного датафрейма в другой | ||
+ | df2[' | ||
+ | |||
+ | print(df2) | ||
+ | |||
+ | print(df2[' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | | ||
+ | 2013-01-01 | ||
+ | 2013-01-02 | ||
+ | 2013-01-03 -0.861849 -2.104569 -0.494929 | ||
+ | 2013-01-04 | ||
+ | 2013-01-05 -0.424972 | ||
+ | 2013-01-06 -0.673690 | ||
+ | |||
+ | | ||
+ | 2013-01-03 -0.861849 -2.104569 -0.494929 | ||
+ | 2013-01-05 -0.424972 | ||
+ | </ | ||
+ | |||
+ | ====== Ввод/ | ||
+ | ===== CSV ===== | ||
+ | Чтение CSV файла делается в одну строку | ||
+ | <code python> | ||
+ | pd.read_csv(' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Задача 4 ====== | ||
+ | |||
+ | Найти всех легендарных покемонов. | ||
+ | |||
+ | ====== Задача 5 ====== | ||
+ | |||
+ | Найти всех производителей шоколада, | ||
+ | |||
+ | < | ||
+ | Страна1 | ||
+ | | ||
+ | | ||
+ | |||
+ | Страна2 | ||
+ | | ||
+ | | ||
+ | | ||
</ | </ | ||