对pandas通过索引提取dataframe的行可以使用.loc[]和.iloc[]方法,这两种方法的主要区别是.loc[]方法是通过行标签和列标签进行索引,而.iloc[]方法则是通过行索引和列索引进行索引。
使用.loc[]方法
.loc[]方法通过标签索引行数据。这里的标签可以是行和列的标签,使用.loc[]方法时需要提供如下信息:
- 想要获取的行的标签,可以是单个标签、多个标签、标签的列表或者切片对象。
- 想要获取的列的标签,可以是单个标签、多个标签、标签的列表或者切片对象。
- 想要获取的数据类型,可以是单个数据类型、多个数据类型、数据类型的列表或者切片对象。
假设我们有如下数据,是一个记录国家GDP的Dataframe:
country GDP
0 中国 14.14
1 美国 21.43
2 日本 4.91
3 德国 3.84
4 英国 2.62
5 法国[2] 2.58
6 意大利 1.94
7 巴西[3] 2.05
8 加拿大 1.65
9 俄罗斯[4] 1.64
我们可以使用.loc[]方法从数据中提取出特定的行,比如:
import pandas as pd
# 创建Dataframe
data = {'country': ['中国', '美国', '日本', '德国', '英国', '法国[2]', '意大利', '巴西[3]', '加拿大', '俄罗斯[4]'],
'GDP': [14.14, 21.43, 4.91, 3.84, 2.62, 2.58, 1.94, 2.05, 1.65, 1.64]}
df = pd.DataFrame(data)
# 获取指定标签的行和列数据
print(df.loc[[1, 3, 5], ['country', 'GDP']])
输出结果是:
country GDP
1 美国 21.43
3 德国 3.84
5 法国[2] 2.58
使用.iloc[]方法
.iloc[]方法是通过行和列的位置进行索引,使用时需要提供行和列的位置。假设我们有如下数据:
A B C
one 1 2 3
two 4 5 6
three 7 8 9
我们可以使用.iloc[]方法来提取行数据,如下所示:
import pandas as pd
# 创建Dataframe
data = {'A': [1, 4, 7],
'B': [2, 5, 8],
'C': [3, 6, 9]}
df = pd.DataFrame(data, index=['one', 'two', 'three'])
# 使用iloc方法获取行和列数据
print(df.iloc[[0, 2], [1, 2]])
输出结果是:
B C
one 2 3
three 8 9
在上面的示例中,我们使用.iloc[]方法获取了第一行和第三行,第二列和第三列的数据。
总之,无论是使用.loc[]还是.iloc[]方法,都可以方便地提取pandas中的行数据,并且这两种方法都支持使用标签和位置对行进行索引。