下面为你详细讲解“Python Pandas之DataFrame索引及选取数据”的完整攻略。
DataFrame 索引
在 Pandas 的 DataFrame 中,常用的索引方式有 loc 和 iloc 两种。
- loc:通过标签(label)定位。
- iloc:通过数字(integer)序列定位。
loc
loc 索引方式,最基本的语法格式为:
df.loc[row_indexer,column_indexer]
即 df.loc[行标签,列标签]
其中,可使用的标签有:
- 单个标签:比如单行索引: df.loc['a'] 即查找行标签为 'a' 的行。
- 切片标签:比如切片索引: df.loc['a':'c'] ,即查找 行标签为' a '至 'c' 的行。
- 布尔型标签:即使用布尔向量查找符合条件的行,比如 df.loc[df.A > 0] ,即查找列 A 大于0的行。
同时,还可以使用标签列表或者布尔向量按列选取数据,比如 df.loc[:,['A','B']] 即查找所有行中 A、B 两列的数据。
下面给出一个示例:
import pandas as pd
data = {'name': ['Alice','Bob','Cathy','Daisy'],
'age': [25, 31, 26, 29],
'gender':['F', 'M', 'F', 'F']}
df = pd.DataFrame(data, index=['a','b','c', 'd'])
# 筛选特定行和列的数据
print(df.loc[['a', 'b'], ['name', 'gender']])
以上代码执行的结果为:
name gender
a Alice F
b Bob M
iloc
iloc 索引方式,最基本的语法格式为:
df.iloc[row_indexer,column_indexer]
即 df.iloc[行下标,列下标]
其中,可使用的下标为纯数字,比如 0 代表第一行/第一列,n 代表第 n 行/第 n 列。
同样,也可以使用切片或者布尔向量按行或列选取数据,比如 df.iloc[:, 1:3] 即选择所有行的第2至第3列。
下面给出一个示例:
import pandas as pd
data = {'name': ['Alice','Bob','Cathy','Daisy'],
'age': [25, 31, 26, 29],
'gender':['F', 'M', 'F', 'F']}
df = pd.DataFrame(data, index=['a','b','c', 'd'])
# 筛选特定行和列的数据
print(df.iloc[0:2, [0, 2]]) # 筛选第1、2行,第1、3列
以上代码执行的结果为:
name gender
a Alice F
b Bob M
选取数据
在 DataFrame 中,除了使用 loc 和 iloc 进行索引选择外,Pandas 还提供了其他的选取数据的方法。
按照条件选择
使用条件语句,筛选出符合条件的数据行或列,比如 df[df.A > 0] 即选取列 A 中大于 0 的数据行。
按照标签(列名)选择
使用列名,选取特定列的数据,比如 df[['A', 'B', 'C']]。
按照位置选择
使用 iloc 选取特定位置的数据,比如 df.iloc[0] 即选取第一行数据,df.iloc[:, 1] 即选取第二列数据。
根据函数选择
使用 apply 这个函数,进行函数处理后的数据选取,比如 df[df['A'].apply(lambda x: x > 0)] 即选取符合 A 列中元素大于零的数据行。
以上就是Python Pandas之DataFrame索引及选取数据的完整攻略。希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python Pandas之DataFrame索引及选取数据 - Python技术站