当我们在Pandas中处理数据时,了解如何索引和选择数据是非常重要的。这篇攻略将会提供详细的指导和实例,教你如何使用Pandas进行数据选择和索引。以下将要涉及的内容:
- 基本索引 [ ]
- 使用 .loc 进行标签索引
- 使用 .iloc 进行整数位置索引
- 使用 .ix 进行混合选择
- 使用布尔索引
- 使用头尾行 .head() 和 .tail()
- 使用 .drop() 删除行或列
在接下来的部分中,我们会使用一个名为 df
的数据框来进行示例演示,该数据框具有以下结构:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Age': [25, 30, 35, 20, 27],
'Country': ['US', 'CA', 'UK', 'DE', 'US']
})
1. 基本索引 [ ]
基本索引是最基本的数据选择方式,使用方括号括起来的列名称或切片。例如,要选择 df
的前三行,可以使用以下语句:
df[:3]
输出结果为:
Name Age Country
0 Alice 25 US
1 Bob 30 CA
2 Charlie 35 UK
2. 使用 .loc 进行标签索引
.loc 用于基于标签的索引,可以使用行标签或者列标签进行数据选择。以下是使用 .loc 方法来获取以下所有行:
df.loc[:, :]
输出结果为:
Name Age Country
0 Alice 25 US
1 Bob 30 CA
2 Charlie 35 UK
3 David 20 DE
4 Eva 27 US
.loc方法同样支持选择单独的列或行,以下是使用 .loc 方法来选择前三行数据:
df.loc[:2, :]
输出结果为:
Name Age Country
0 Alice 25 US
1 Bob 30 CA
2 Charlie 35 UK
3. 使用 .iloc 进行整数位置索引
.iloc 用于基于整数位置的索引,即使用行号或者列号来进行数据选择。以下是使用 .iloc 方法对前两列进行选择:
df.iloc[:, :2]
输出结果为:
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35
3 David 20
4 Eva 27
使用 .iloc 方法还可以选择某些行或者列,例如选择第二行和第三列:
df.iloc[[1], [2]]
输出结果为:
Country
1 CA
4. 使用 .ix 进行混合选择
.ix 方法可以实现混合选择,同时支持标签和整数索引。例如,要选择前三行和第二列,则可以使用以下语句:
df.ix[:2, 1]
输出结果为:
0 25
1 30
2 35
Name: Age, dtype: int64
注意: 该方法在 Pandas 版本 0.20.0 后已经被弃用,并由.loc 和.iloc方法分别代替,但若版本较早可以照常使用该方法。
5. 使用布尔索引
布尔索引可以根据满足条件的数据进行选择,通常使用比较运算符来指定其过滤条件。以下是使用布尔索引选择所有 Age
大于25岁的数据:
df[df['Age'] > 25]
输出结果为:
Name Age Country
1 Bob 30 CA
2 Charlie 35 UK
4 Eva 27 US
6. 使用头尾行 .head() 和 .tail()
.head() 方法和 .tail() 方法可以选择前N行和后N行信息。例如,以下是使用 .head() 方法来选择前2行数据:
df.head(2)
输出结果为:
Name Age Country
0 Alice 25 US
1 Bob 30 CA
7. 使用 .drop() 删除行或列
使用.drop()可以轻松地删除某些行或列,例如删除第一列 Name
:
df = df.drop(['Name'], axis=1)
请注意,axis=1
表示我们将要删除列,而不是行。如果要删除行,请将 axis
的值更改为0。