Python pandas 的索引方式 data.loc[]
,data[][]
示例详解
背景
在使用Python pandas的过程中,我们常常需要对数据进行索引、筛选、修改等操作。其中,使用data.loc[]
和data[][]
进行索引操作是比较常见和灵活的方式。接下来,我们将详细讲解这两种索引方式的使用方法和示例。
data.loc[]
的使用
data.loc[]
是一种基于标签的索引方式,它能够根据行标签和列标签进行数据的定位和筛选。其基本语法为:
data.loc[row_label, column_label]
其中,
row_label
表示行标签,可以是单个标签、标签列表或切片。column_label
表示列标签,可以是单个标签、标签列表或切片。
同时,data.loc[]
还支持筛选条件的使用。例如,我们可以使用data.loc[data['column_name'] > 10]
的方式,返回所有满足列column_name
中值大于10的行数据。
接下来,我们通过示例进行详细说明:
示例1:
假设我们有一个数据集data
,如下:
import pandas as pd
data = pd.DataFrame({'Name': ['Tom', 'John', 'Mike', 'Jack', 'Alex', 'Bob'],
'Age': [25, 18, 32, 30, 28, 22],
'Gender': ['M', 'M', 'M', 'M', 'M', 'M']})
我们现在想要选取年龄大于等于30岁的数据,代码如下:
data.loc[data['Age'] >= 30]
这里的data['Age'] >= 30
表示对Age
列进行筛选,返回一个布尔值Series,然后使用data.loc[]
来选取满足这个条件的行数据。最终返回结果如下:
Name Age Gender
2 Mike 32 M
3 Jack 30 M
示例2:
假设我们有一个数据集data
,如下:
import pandas as pd
data = pd.DataFrame({'Name': ['Tom', 'John', 'Mike', 'Jack', 'Alex', 'Bob'],
'Age': [25, 18, 32, 30, 28, 22],
'Gender': ['M', 'M', 'M', 'M', 'M', 'M']})
我们现在想要选取第3-5行的Name
和Gender
列数据,代码如下:
data.loc[2:4, ['Name', 'Gender']]
这里的2:4
表示选取行的范围,左闭右开,即第3-5行;['Name', 'Gender']
表示选取列的标签,返回结果如下:
Name Gender
2 Mike M
3 Jack M
4 Alex M
data[][]
的使用
data[][]
是一种基于位置的索引方式,和data.loc[]
有一些相似之处。不同的是,它只能够通过数字下标来定位和筛选数据,不能使用标签进行定位。其基本语法为:
data[row_index][column_index]
其中,
row_index
表示行下标,可以是单个下标、下标列表或切片。column_index
表示列下标,可以是单个下标、下标列表或切片。
同时,与data.loc[]
一样,data[][]
也支持筛选条件的使用。例如,我们可以使用data[data['column_name'] > 10]
的方式,返回所有满足列column_name
中值大于10的行数据。
接下来,我们通过示例进行详细说明:
示例1:
假设我们有一个数据集data
,如下:
import pandas as pd
data = pd.DataFrame({'Name': ['Tom', 'John', 'Mike', 'Jack', 'Alex', 'Bob'],
'Age': [25, 18, 32, 30, 28, 22],
'Gender': ['M', 'M', 'M', 'M', 'M', 'M']})
我们现在想要选取第3-5行的第1-2列数据(Name
和Age
列),代码如下:
data.iloc[2:5, 0:2]
这里的2:5
表示选取行的范围,左闭右开,即第3-5行;0:2
表示选取列的下标,即第1-2列。返回结果如下:
Name Age
2 Mike 32
3 Jack 30
4 Alex 28
示例2:
假设我们有一个数据集data
,如下:
import pandas as pd
data = pd.DataFrame({'Name': ['Tom', 'John', 'Mike', 'Jack', 'Alex', 'Bob'],
'Age': [25, 18, 32, 30, 28, 22],
'Gender': ['M', 'M', 'M', 'M', 'M', 'M']})
我们现在想要选取年龄大于等于30岁的数据的Name
和Gender
列,代码如下:
data[data['Age'] >= 30][['Name', 'Gender']]
这里的data['Age'] >= 30
表示对Age
列进行筛选,返回一个布尔值Series,然后使用data[data['Age'] >= 30]
来选取满足这个条件的行数据;[['Name', 'Gender']]
表示选取列的标签。返回结果如下:
Name Gender
2 Mike M
3 Jack M
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python pandas 的索引方式 data.loc[],data[][]示例详解 - Python技术站