javaee论坛

普通会员

225648

帖子

332

回复

346

积分

楼主
发表于 2019-10-31 14:38:06 | 查看: 66 | 回复: 2

loc函数:通过行索引“Index”中的具体值来取行数据(如取"Index"为"A"的行)iloc函数:通过行号来取行数据(如取第二行的数据)

本文给出loc、iloc常见的五种用法,并附上详细代码。

1.利用loc、iloc提取行数据importnumpyasnpimportpandasaspd#创建一个Dataframedata=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD'))In[1]:dataOut[1]:ABCDa0123b4567c891011d12131415#取索引为'a'的行In[2]:data.loc['a']Out[2]:A0B1C2D3#取第一行数据,索引为'a'的行就是第一行,所以结果相同In[3]:data.iloc[0]Out[3]:A0B1C2D32.利用loc、iloc提取列数据In[4]:data.loc[:,['A']]#取'A'列所有行,多取几列格式为data.loc[:,['A','B']]Out[4]:Aa0b4c8d12In[5]:data.iloc[:,[0]]#取第0列所有行,多取几列格式为data.iloc[:,[0,1]]Out[5]:Aa0b4c8d123.利用loc、iloc提取指定行、指定列数据In[6]:data.loc[['a','b'],['A','B']]#提取index为'a','b',列名为'A','B'中的数据Out[6]:ABa01b45In[7]:data.iloc[[0,1],[0,1]]#提取第0、1行,第0、1列中的数据Out[7]:ABa01b454.利用loc、iloc提取所有数据In[8]:data.loc[:,:]#取A,B,C,D列的所有行Out[8]:ABCDa0123b4567c891011d12131415In[9]:data.iloc[:,:]#取第0,1,2,3列的所有行Out[9]:ABCDa0123b4567c891011d121314155.利用loc函数,根据某个数据来提取数据所在的行In[10]:data.loc[data['A']==0]#提取data数据(筛选条件:A列中数字为0所在的行数据)Out[10]:ABCDa0123

利用loc函数的时候,当index相同时,会将相同的Index全部提取出来,优点是:如果index是人名,数据框为所有人的数据,那么我可以将某个人的多条数据提取出来分析;缺点是:如果index不具有特定意义,而且重复,那么提取的数据需要进一步处理。


普通会员

0

帖子

290

回复

294

积分
沙发
发表于 2019-11-19 01:14:14

爱你呦

普通会员

2

帖子

266

回复

279

积分
板凳
发表于 2024-01-08 12:55:03

还是很厉害的

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017