码迷,mamicode.com
首页 > 编程语言 > 详细

python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix

时间:2016-10-28 02:55:17      阅读:343      评论:0      收藏:0      [点我收藏+]

标签:tool   取出   pytho   个数   dex   数据   切片   ram   das   

先手工生出一个数据框吧

[python] view plain copy
  1. import numpy as np  
  2. import pandas as pd  
  3. df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list(‘abc‘))  

df 是这样子滴

技术分享

那么这三种选取数据的方式该怎么选择呢?

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

[python] view plain copy
  1. df.loc[0, ‘a‘]  
  2. df.loc[0:3, [‘a‘, ‘b‘]]  
  3. df.loc[[1, 5], [‘b‘, ‘c‘]]  

由于这边我们没有命名index,所以是DataFrame自动赋予的,为数字0-9

二、如果我们嫌column name太长了,输入不方便,有或者index是一列时间序列,更不好输入,那就可以选择 .iloc了。这边的 i 我觉得代表index,比较好记点。

[python] view plain copy
  1. df.iloc[1,1]  
  2. df.iloc[0:3, [0,1]]  
  3. df.iloc[[0, 3, 5], 0:2]  

iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。

三、.ix 的功能就更强大了,它允许我们混合使用下标和名称进行选取。 可以说它涵盖了前面所有的用法。基本上把前面的都换成df.ix 都能成功,但是有一点,就是

df.ix [ [ ..1.. ], [..2..] ],  1框内必须统一,必须同时是下标或者名称,2框也一样。 BTW, 1框是用来指定row,2框是指定column, 当然上面所有的取数方法都是这个规则。

这就是我目前的领悟吧。

python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix

标签:tool   取出   pytho   个数   dex   数据   切片   ram   das   

原文地址:http://www.cnblogs.com/harvey888/p/6006200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!