python中series按值选行_Series和DataFrame的数据取值与选择

原标题:Series和DataFrame的数据取值与选择

数据取值与选择

NumPy数据取值的方法,包括取值操作(如arr[2, 1])、切片操作(如arr[:, 1:5])、掩码操作(如arr[arr 0])、花哨的索引操作(如arr[0, [1, 5]]),以及组合操作(如arr[:, [1, 5]])。

在NumPy的二维数组里,data[0]返回第一行,而在DataFrame中,data['col0']返回第一列。importnumpyasnpimportpandasaspd Series数据选择方法

将Series看作字典,

Series对象提供了键值对的映射。data=pd.Series(np.linspace(0.25,1,4),index=['a','b','c','d'])datadata['b']#用Python字典的表达式和方法来检测键/索引和值:'a'indatadata.keys()data.items()list(data.items())#增加新的索引值扩展Seriesdata['e']=1.25

将Series看作一维数组,

具备和Numpy数组一样的数组数据选择功能,包括索引、掩码、花哨的索引操作。#将显式索引作为切片data['a':'c']#将隐式整数索引作为切片data[0:2]#掩码data[(data0.3)(data0.8)]#花哨的索引data[['a','e']]

当使用显式索引(即 data['a':'c'])作切片时,结果包含最后一个索引;而当使用隐式索引(即 data[0:2]) 作切片时,结果不包含最后一个索引。

索引器:loc、iloc和ix,

如果Series是显式整数索引,那么data[1]这样的取值操作会使用显式索引,而data[1:3]这样的切片操作会使用隐式索引。data=pd.Series(['a','b','c'],index=(1,3,5))data#取值操作是显式索引data[1]#切片操作是隐式索引data[1:3]

Pandas提供的索引器(indexer)属性来取值的方法不是Series对象的函数方法,而是暴露切片接口的属性。

第一种索引器是loc属性,表示取值和切片都是显式的:data.loc[1]data.loc[1:3]

第二种是iloc属性,表示取值和切片都是Python形式(从0开始,左闭右开区间)的隐式索引:data.iloc[1]data.iloc[1:3]

第三种取值属性是ix,它是前两种索引器的混合形式。在Series对象中ix等价于标准的[](Python列表)取值方式。

在处理整数索引的对象时,强烈推进使用索引器,可以让代码阅读和理解起来更容易,也能避免因误用索引/切片而产生的小bug。DataFrame数据选择方法

将DataFrame看作字典,

把DataFrame当作一个由若干Series对象构成的字典。area=pd.Series({'Guangzhou':55555,'Shenzhen':44444,'Dongguan':33333,'Foshan':22222,'Zhuhai':11111})pop=pd.Series({'Guangzhou':51,'Shenzhen':42,'Dongguan':33,'Foshan':24,'Zhuhai':15})data=pd.DataFrame({'area':area,'pop':pop})data

两个Series分别构成DataFrame的一列,可以通过对列名进行字典型是的取值获取数据。data['area']#用字典形式语法调整对象data['density']=data['pop']/data['area']data

将DataFrame看作二维数组,data.valuesdata.Tdata.values[0]data['area']

Pandas索引器loc、iloc和ix,

通过iloc索引器,像对待Numpy数组一样索引Pandas的底层数组(Python的隐式索引),DataFrame的行列标签会自动保留在结果中。data.iloc[:3,:2]data.loc[:'Guangzhou',:'pop']#ix索引器实现混合效果data.ix[:3,:'pop']

loc属性,表示取值和切片都是显式的。data.loc[data.index[[0,2]],['area','pop']]data.loc[data.index[[0,2]],'area':'pop']data.loc[:,['area','pop']]data.loc[:'Guangzhou',:'pop']

iloc属性,表示取值和切片都是Python形式的(从0开始,左闭右开区间)隐式索引。data.iloc[[0,2],data.columns.get_loc('pop')]data.iloc[0:2,data.columns.get_indexer(['area','pop'])]data.iloc[0:2,0:2]

如果对单个标签取值就选择列,而对多个标签用切片就选择行。

data['area']data['Dongguan':'Guangzhou']返回搜狐,查看更多

责任编辑:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值