蓝绝

博客园 首页 新随笔 联系 订阅 管理

数据抽取.
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

 

 

 

posted on 2022-11-19 09:55  蓝绝  阅读(40)  评论(0编辑  收藏  举报