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 中级

讨论 [ ]

  • 方括号:功能有限
  • 理想情况
    • 2D 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 中级

Passons à la pratique !

Python 中级

Preparing Video For Download...