数据抽取.
DataFrame对象的loc属性与iloc属性.
loc属性
以列名(columns)和行名(index)作为参数,当只有一个参数时,默认是行名,即抽取整行数据,包括所有列。
iloc属性
以行和列位置索引(即:0,1,2,.)作为参数,0表示第一行,1表示第2行,以此类推。当只有一个参数时,默认是行索引,即抽取整行数据,包括所有列。
------------------------------------------------------------------------------------------------------------------------
#按行提取
import pandas as pd pd.set_option('display.unicode.east_asian_width',True) data=[[45,65,100],[56,45,50],[67,67,67]] index=['张三','李四','王五'] columns=['数学','语文','英语'] df=pd.DataFrame(data=data,index=index,columns=columns) print(df) #提取行数据 print(df.loc['张三']) #行索引名称 print(df.iloc[0]) #行索引的编号 print('3.-------------提取多行数据------两个[]-----------------') print(df.loc[['张三','王五']]) #行索引名称 print(df.iloc[[0,2]]) #行索引的编号 print('-4------------提取连续多行数-----------------------') print(df.loc['张三':'王五']) print('--5---------------------------------') print(df.iloc[0:2]) print('---6--------------------------------') print(df.iloc[1::]) #iloc[start:stop:step] print('---7--------------------------------') print(df.iloc[::2]) #iloc[start:stop:step] 步长为2,取出0,2
数学 语文 英语 张三 45 65 100 李四 56 45 50 王五 67 67 67 数学 45 语文 65 英语 100 Name: 张三, dtype: int64 数学 45 语文 65 英语 100 Name: 张三, dtype: int64 3.-------------提取多行数据------两个[]----------------- 数学 语文 英语 张三 45 65 100 王五 67 67 67 数学 语文 英语 张三 45 65 100 王五 67 67 67 -4------------提取连续多行数----------------------- 数学 语文 英语 张三 45 65 100 李四 56 45 50 王五 67 67 67 --5--------------------------------- 数学 语文 英语 张三 45 65 100 李四 56 45 50 ---6-------------------------------- 数学 语文 英语 李四 56 45 50 王五 67 67 67 ---7-------------------------------- 数学 语文 英语 张三 45 65 100 王五 67 67 67
#按列提取
import pandas as pd pd.set_option('display.unicode.east_asian_width',True) data=[[45,65,100],[56,45,50],[67,67,67]] index=['张三','李四','王五'] columns=['数学','语文','英语'] df=pd.DataFrame(data=data,index=index,columns=columns) print(df) print('1.------- #直接使用列名提取 标签-----------------') print(df[['数学','英语']]) #直接使用列名提取 print('2----------提取不连续的列 标签------------------') print(df.loc[:,['数学','英语']]) #逗号号的左侧表示的是行,石侧表示的是列,所有行的,数字和英语 print('3-------------提取不连续的列 隐式索引---------------') print(df.iloc[:,[0,2]]) print('4--------------提取连续的列 标签-------------') print(df.loc[:,'语文':]) print('5--------------提取连续的列 隐式索引--------------') print(df.iloc[:,1:])
数学 语文 英语 张三 45 65 100 李四 56 45 50 王五 67 67 67 1.------- #直接使用列名提取 标签----------------- 数学 英语 张三 45 100 李四 56 50 王五 67 67 2----------提取不连续的列 标签------------------ 数学 英语 张三 45 100 李四 56 50 王五 67 67 3-------------提取不连续的列 隐式索引--------------- 数学 英语 张三 45 100 李四 56 50 王五 67 67 4--------------提取连续的列 标签------------- 语文 英语 张三 65 100 李四 45 50 王五 67 67 5--------------提取连续的列 隐式索引-------------- 语文 英语 张三 65 100 李四 45 50 王五 67 67