Pandas, часть 2

Средний уровень Python

Hugo Bowne-Anderson

Data Scientist at DataCamp

brics

import pandas as pd
brics = pd.read_csv("path/to/brics.csv", index_col = 0)
brics
         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
Средний уровень Python

Индексация и выборка данных

  • Квадратные скобки
  • Продвинутые методы
    • loc
    • iloc
Средний уровень Python

Доступ к столбцам [ ]

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics["country"]
BR          Brazil
RU          Russia
IN           India
CH           China
SA    South Africa
Name: country, dtype: object
Средний уровень Python

Доступ к столбцам [ ]

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
type(brics["country"])
pandas.core.series.Series
  • Одномерный массив с метками
Средний уровень Python

Доступ к столбцам [ ]

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics[["country"]]
         country
BR        Brazil
RU        Russia
IN         India
CH         China
SA  South Africa
Средний уровень Python

Доступ к столбцам [ ]

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
type(brics[["country"]])
pandas.core.frame.DataFrame
Средний уровень Python

Доступ к столбцам [ ]

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics[["country", "capital"]]
         country    capital
BR        Brazil   Brasilia
RU        Russia     Moscow
IN         India  New Delhi
CH         China    Beijing
SA  South Africa   Pretoria
Средний уровень Python

Доступ к строкам [ ]

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics[1:4]
   country    capital    area  population
RU  Russia     Moscow  17.100       143.5
IN   India  New Delhi   3.286      1252.0
CH   China    Beijing   9.597      1357.0
Средний уровень Python

Доступ к строкам [ ]

         country    capital    area  population 
BR        Brazil   Brasilia   8.516      200.40    * 0 *
RU        Russia     Moscow  17.100      143.50    * 1 *
IN         India  New Delhi   3.286     1252.00    * 2 *
CH         China    Beijing   9.597     1357.00    * 3 *
SA  South Africa   Pretoria   1.221       52.98    * 4 *
brics[1:4]
   country    capital    area  population
RU  Russia     Moscow  17.100       143.5
IN   India  New Delhi   3.286      1252.0
CH   China    Beijing   9.597      1357.0
Средний уровень Python

Обсуждение [ ]

  • Квадратные скобки: ограниченная функциональность
  • В идеале
    • Двумерные массивы NumPy
    • my_array[rows, columns]
  • pandas
    • loc (по меткам)
    • iloc (по целочисленным позициям)
Средний уровень Python

Доступ к строкам loc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc["RU"]
country       Russia
capital       Moscow
area            17.1
population     143.5
Name: RU, dtype: object
  • Строка как pandas Series
Средний уровень Python

Доступ к строкам loc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[["RU"]]
   country capital  area  population
RU  Russia  Moscow  17.1       143.5
  • DataFrame
Средний уровень Python

Доступ к строкам loc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[["RU", "IN", "CH"]]
   country    capital    area  population
RU  Russia     Moscow  17.100       143.5
IN   India  New Delhi   3.286      1252.0
CH   China    Beijing   9.597      1357.0
Средний уровень Python

Строки и столбцы loc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
   country    capital
RU  Russia     Moscow
IN   India  New Delhi
CH   China    Beijing
Средний уровень Python

Строки и столбцы loc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[:, ["country", "capital"]]
         country    capital
BR        Brazil   Brasilia
RU        Russia     Moscow
IN         India  New Delhi
CH         China    Beijing
SA  South Africa   Pretoria
Средний уровень Python

Итоги

  • Квадратные скобки
    • Доступ к столбцам brics[["country", "capital"]]
    • Доступ к строкам: только через срезы brics[1:4]
  • loc (по меткам)
    • Доступ к строкам brics.loc[["RU", "IN", "CH"]]
    • Доступ к столбцам brics.loc[:, ["country", "capital"]]
    • Доступ к строкам и столбцам
      brics.loc[
      ["RU", "IN", "CH"], 
      ["country", "capital"]
      ]
      
Средний уровень Python

Доступ к строкам iloc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[["RU"]]
   country capital  area  population
RU  Russia  Moscow  17.1       143.5
brics.iloc[[1]]
   country capital  area  population
RU  Russia  Moscow  17.1       143.5
Средний уровень Python

Доступ к строкам iloc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[["RU", "IN", "CH"]]
   country    capital    area  population
RU  Russia     Moscow  17.100       143.5
IN   India  New Delhi   3.286      1252.0
CH   China    Beijing   9.597      1357.0
Средний уровень Python

Доступ к строкам iloc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.iloc[[1,2,3]]
   country    capital    area  population
RU  Russia     Moscow  17.100       143.5
IN   India  New Delhi   3.286      1252.0
CH   China    Beijing   9.597      1357.0
Средний уровень Python

Строки и столбцы iloc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
   country    capital
RU  Russia     Moscow
IN   India  New Delhi
CH   China    Beijing
Средний уровень Python

Строки и столбцы iloc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.iloc[[1,2,3], [0, 1]]
   country    capital
RU  Russia     Moscow
IN   India  New Delhi
CH   China    Beijing
Средний уровень Python

Строки и столбцы iloc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.loc[:, ["country", "capital"]]
         country    capital
BR        Brazil   Brasilia
RU        Russia     Moscow
IN         India  New Delhi
CH         China    Beijing
SA  South Africa   Pretoria
Средний уровень Python

Строки и столбцы iloc

         country    capital    area  population
BR        Brazil   Brasilia   8.516      200.40
RU        Russia     Moscow  17.100      143.50
IN         India  New Delhi   3.286     1252.00
CH         China    Beijing   9.597     1357.00
SA  South Africa   Pretoria   1.221       52.98
brics.iloc[:, [0,1]]
         country    capital
BR        Brazil   Brasilia
RU        Russia     Moscow
IN         India  New Delhi
CH         China    Beijing
SA  South Africa   Pretoria
Средний уровень Python

Давайте потренируемся!

Средний уровень Python

Preparing Video For Download...