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

相信很多人像我一样在学习python,pandas过程中对数据的选取和修改有很大的困惑(也许是深受Matlab)的影响。。。

到今天终于完全搞清楚了!!!

先手工生出一个数据框吧

import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc')) 

df 是这样子滴

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

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

df.loc[0, 'a']
df.loc[0:3, ['a', 'b']]
df.loc[[1, 5], ['b', 'c']] 

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

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

df.iloc[1,1]
df.iloc[0:3, [0,1]]
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实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • pandas.loc 选取指定列进行操作的实例

    今天发现用pandas里面的数据结构可以减少大量的编程工作,从现在开始逐渐积累,记录一下: 使用标签选取数据: df.loc[行标签,列标签] df.loc['a':'b']#选取ab两行数据 df.loc[:,'one']#选取one列的数据 df.loc的第一个参数是行标签,第二个参数为列标签(可选参数,默认为所有列标签),两个参数既可以是列表也可以是单个字符,如果两个参数都为列表则返回的是DataFrame,否则,则为Series. 示例代码: df.loc[ (df.Cabin.notn

  • 用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz')) data['w'] #选择表格中的'w'列,使用类字典属性,返回的是Series类型 data.w #选择表格

  • Python Pandas中根据列的值选取多行数据

    Pandas中根据列的值选取多行数据 # 选取等于某些值的行记录 用 == df.loc[df['column_name'] == some_value] # 选取某列是否是某一类型的数值 用 isin df.loc[df['column_name'].isin(some_values)] # 多种条件的选取 用 & df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)] # 选取不等于某些值的

  • 基于pandas数据样本行列选取的方法

    注:以下代码是基于python3.5.0编写的 import pandas food_info = pandas.read_csv("food_info.csv") # ------------------选取数据样本的第一行-------------------- print(food_info.loc[0]) #------------------选取数据样本的3到6行---------------------- print(food_info.loc[3:6]) #-------

  • pandas 选取行和列数据的方法详解

    前言 本文介绍在 pandas 中如何读取数据行列的方法.数据由行和列组成,在数据库中,一般行被称作记录 (record),列被称作字段 (field).回顾一下我们对记录和字段的获取方式:一般情况下,字段根据名称获取,记录根据筛选条件获取.比如获取 student_id 和 studnent_name 两个字段:记录筛选,比如 sales_amount 大于 10000 的所有记录.对于熟悉 SQL 语句的人来说,就是下面的语句: select student_id, student_name

  • pandas数据清洗,排序,索引设置,数据选取方法

    此教程适合有pandas基础的童鞋来看,很多知识点会一笔带过,不做详细解释 Pandas数据格式 Series DataFrame:每个column就是一个Series 基础属性shape,index,columns,values,dtypes,describe(),head(),tail() 统计属性Series: count(),value_counts(),前者是统计总数,后者统计各自value的总数 df.isnull() df的空值为True df.notnull() df的非空值为T

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

    相信很多人像我一样在学习python,pandas过程中对数据的选取和修改有很大的困惑(也许是深受Matlab)的影响... 到今天终于完全搞清楚了!!! 先手工生出一个数据框吧 import numpy as np import pandas as pd df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc')) df 是这样子滴 那么这三种选取数据的方式该怎么选择呢? 一.当每列已有column name时,用

  • Python pandas DataFrame数据拼接方法

    目录 前言 DataFrame数据拼接方法一:使用.append()方法. DataFrame数据拼接方法二:使用.concat()方法. 补充:Python同时合并多个DataFrame 总结 前言 在pandas模块中,通常我们都需要对类型为DataFrame的数据进行操作,其中最为常见的操作便是拼接了.比如我们将两个Excel表格中的数据读入,随后拼接完成后保存进一个新的Excel表格文件中.之前查找了相关的博客, 发现网络上鱼龙混杂.有些代码完全无法执行,为了提高效率,这里做一个详细地记

  • python pandas dataframe 行列选择,切片操作方法

    SQL中的select是根据列的名称来选取:Pandas则更为灵活,不但可根据列名称选取,还可以根据列所在的position(数字,在第几行第几列,注意pandas行列的position是从0开始)选取.相关函数如下: 1)loc,基于列label,可选取特定行(根据行index): 2)iloc,基于行/列的position: 3)at,根据指定行index及列label,快速定位DataFrame的元素: 4)iat,与at类似,不同的是根据position来定位的: 5)ix,为loc与i

  • Python Pandas多种添加行列数据方法总结

    目录 前言 1. 增加列数据 2. 增加行数据 补充:pandas根据现有列新添加一列 总结 前言 发现自己学习python 的各种库老是容易忘记,所有想利用这个平台,记录和分享一下学习时候的知识点,以后也能及时的复习,最近学习pandas,那我们来看看pandas添加数据的一些方法 创建一个dataframe 1. 增加列数据 为dataframe增加一列新数据,需要确保增加列的长度与原数据保持一致 如果是增加一列相同数据可以直接输入 df['level'] = 1 插入的数据是需要通过源数据

  • python pandas处理excel表格数据的常用方法总结

    目录 前言 1.读取xlsx表格:pd.read_excel() 2.获取表格的数据大小:shape 3.索引数据的方法:[ ] / loc[] / iloc[] 4.判断数据为空:np.isnan() / pd.isnull() 5.查找符合条件的数据 6.修改元素值:replace() 7.增加数据:[ ] 8.删除数据:del() / drop() 9.保存到excel文件:to_excel() 总结 前言 最近助教改作业导出的成绩表格跟老师给的名单顺序不一致,脑壳一亮就用pandas写了

  • Python pandas DataFrame基础运算及空值填充详解

    目录 前言 数据对齐 fill_value 空值api dropna fillna 总结 前言 今天我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc.loc以及逻辑索引等等.今天的文章我们来看看DataFrame的一些基本运算. 数据对齐 我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,如果对不上的数据会被置为Nan(not a number). 首先我们来

  • python pandas dataframe 按列或者按行合并的方法

    concat 与其说是连接,更准确的说是拼接.就是把两个表直接合在一起.于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis . 函数的具体参数是: concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verigy_integrity=False) objs 是需要拼接的对象集合,一般为列表或者字典 axis=0 是

  • pandas.DataFrame选取/排除特定行的方法

    pandas.DataFrame选取特定行 使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选. >>> df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB', 'AH'], ['HEN', 'HEN', 'HL

  • Python pandas.DataFrame 找出有空值的行

    0.摘要 pandas中DataFrame类型中,找出所有有空值的行,可以使用.isnull()方法和.any()方法. 1.找出含有空值的行 方法:DataFrame[DataFrame.isnull().T.any()] 其中,isnull()能够判断数据中元素是否为空值:T为转置:any()判断该行是否有空值. import pandas as pd import numpy as np n = np.arange(20, dtype=float).reshape(5,4) n[2,3]

  • python pandas中对Series数据进行轴向连接的实例

    有时候我们想要的数据合并结果是数据的轴向连接,在pandas中这可以通过concat来实现.操作的对象通常是Series. Ipython中的交互代码如下: In [17]: from pandas import Series,DataFrame In [18]: series1 = Series(range(2),index = ['a','b']) In [19]: series2 = Series(range(3),index = ['c','d','e']) In [20]: serie

随机推荐