理论:
Pandas中,使用索引获取数据的方式可归纳为3种:
1. .loc,标签索引
2. .iloc,位置索引
loc与iloc主要用于行索引,其中,使用名称/标签的切片索引是包含末尾位置的。
3. 布尔值遮罩:
对应位置为True的时候,则取得该数据。
实验:
数据分析工具Pandas基础
索引操作总结
In [1]:
import pandas as pd
import numpy as np
In [12]:
# 构建DataFrame
country1 = pd.Series({'Name':'中国',
'Language':'Chinese',
'Area':'9.597M km2',
'Happiness Rank': 79})
country2 = pd.Series({'Name':'美国',
'Language':'English(US)',
'Area':'9.83M km2',
'Happiness Rank': 14})
country3 = pd.Series({'Name':'澳大利亚',
'Language':'English(AU)',
'Area':'7.692M km2',
'Happiness Rank': 9})
df = pd.DataFrame([country1,country2,country3],index=['CH','US','AU'])
In [3]:
df
Out[3]:
Name | Language | Area | Happiness Rank | |
---|---|---|---|---|
CH | 中国 | Chinese | 9.597M km2 | 79 |
US | 美国 | USA | 9.83M km2 | 14 |
AU | 澳大利亚 | Austria | 7.692M km2 | 9 |
.loc标签索引(用于行索引)
In [13]:
df.loc['CH']
Out[13]:
Name 中国 Language Chinese Area 9.597M km2 Happiness Rank 79 Name: CH, dtype: object
.iloc位置索引(用于行索引)
In [14]:
df.iloc[[0,2]]
Out[14]:
Name | Language | Area | Happiness Rank | |
---|---|---|---|---|
CH | 中国 | Chinese | 9.597M km2 | 79 |
AU | 澳大利亚 | English(AU) | 7.692M km2 | 9 |
布尔值遮罩
In [15]:
# 找出说英语的国家
df['Language'].str.contains('English')
Out[15]:
CH False US True AU True Name: Language, dtype: bool
In [16]:
#生成布尔值遮罩
filter_condition = df['Language'].str.contains('English')
df[filter_condition]
Out[16]:
Name | Language | Area | Happiness Rank | |
---|---|---|---|---|
US | 美国 | English(US) | 9.83M km2 | 14 |
AU | 澳大利亚 | English(AU) | 7.692M km2 | 9 |
In [17]:
# 过滤出排名前20的国家
df[df['Happiness Rank'] <= 20]
Out[17]:
Name | Language | Area | Happiness Rank | |
---|---|---|---|---|
US | 美国 | English(US) | 9.83M km2 | 14 |
AU | 澳大利亚 | English(AU) | 7.692M km2 | 9 |
In [ ]: