.loc 与.iloc

Python中的Pandas库根据位置取值可以用.loc.iloc以及.ix,还可以通过每一行的索引和列的索引,把需要的行和列单独取出来

Pandas详解可以看下面这两篇文章:

十分钟掌握Pandas(上)

十分钟掌握Pandas(下)

 

iloc:根据标签的所在位置,从0开始计数,先选取行再选取列

loc:根据DataFrame的具体标签选取行列,同样是先行标签,后列标签

 

一、当每列已有column name时,用 df [ 'a' ] 就能选取出一整列数据。如果你知道column names 和index,且两者都很好输入,可以选择 .loc

import numpy as np
import pandas as pd
df=pd.DataFrame(np.arange(0,200,2).reshape(10,10),columns=list('abcdefghij'))
print(df)
print (df.loc[[1,5],['a','b']])

输出了完整的df,以及第1行和第5行且column name为a和b的数据,由于没有命名index,所以数字0-9是DataFrame自动赋予的

二、如果column name太长,输入不方便,或者index是一列时间序列,更不好输入。那就可以选择 .iloc了。

import numpy as np
import pandas as pd
df=pd.DataFrame(np.arange(0,200,2).reshape(10,10),columns=list('abcdefghij'))
print (df.iloc[2,1])
print (df.iloc[:5,5])

输出了第2行第1列的数据42,以及index为0-4第6列 f的数据。.iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。

三、.ix 的功能十分强大,它允许我们混合使用下标和名称进行选取。

df.ix [ [ ..1.. ], [..2..] ],  1框内必须统一,必须同时是下标或者名称,2框也一样。 

import numpy as np
import pandas as pd
df=pd.DataFrame(np.arange(0,200,2).reshape(10,10),columns=list('abcdefghij'))
print (df.ix[[2,3],[1,2]])

但是一般情况下不建议采用。

  • 23
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值