Pandas

作者: Tufeng | 来源:发表于2019-07-31 14:26 被阅读0次

    Serise,由index和values组成。

    和Numpy一纬数组,的本质区别是索引:Numpy数组通过隐式定义的整数索引获取数值,而Pandas的Series对象用一种显式定义的索引与数值关联。

    Series对象,直接定义索引名

    定义索引名的时候,可以是数字。

    Series对象,还支持数组形式的操作比如切片。

    创建Series时,用的是,字典,字典的键,就是Series的索引。但是后面如果有index指定字典里的键,以指定为准,没被指定的就不显示。

    指定index=[x,y]

    索引求值,series['str']/[i]  i 为数字的话,还可以series['str':'str']切片

    可以把series类比为带灵活索引的一维数组,df就是那个有灵活 行和列 索引的二维数组。

    二维数组可以看成,有序排列的一维数组。

    DF可以看成,有序排列的,若干series对象。这里的排列,指的是他们共同的索引。

    两个属性,df. index  df. columns

    df["column_name"]获得的是列

    二维数组中,data[0]获得的是行

    指定index=[,,,,,]columns=[,,,,,]

    data1=pd. DataFrame(data),后面生成的是,副本。需要重新赋值,修改data1与data无关联

    df的index值不能修改

    生成index对象,pd. Index()

    试图修改df的index df的index不能修改

    如果Series是显式 整数 索引。那么data[1]这样的取值操作会使用显式索引。而data[1:3]这样的切片操作却会使用隐式索引。

    因为这样容易引起混淆,使用索引器(indexer)属性来作为取值的方法。他们不是Serise对象的函数方法,而是暴露切片接口的属性。data. loc[1]/[1:3],取值和切片都是显式的,data. iloc[1]/[1:3],取值和切片都是隐式的。全部是左闭右开。python代码设计原则就是,显式优于隐式。

    data. iloc[0,::2]#取0行,开头到结尾跳2的列。

    DF数据,可以通过data["column_name"]和属性形式data. column_name

    data. values是一个二维数组,所以data. values[0]可以得到data第一行数据

    在对DF数据进行,数组形式的取值时,可以通过loc,. iloc特别是iloc索引器,就可以像对待numpy数组一样索引pandas的底层数组(python的隐式索引),索引出来的结果,df的行列标签,会自动保留下来。

    当两个Series或者Df对象进行二元计算时,pandas会在计算过程中对齐两个对象的索引。当处理不完整的数据时,对于缺失位置的数据,被填充NaN,表示,此处无数。结果数组的索引是两个输入数组索引的并集。不要空值,用fill_value=x这个参数定义缺失的数据。

    通用函数:df与Series运算

    df-df. iloc[0]行运算#用的运算符

    df. subtrack(df['R'],axis=0)列运算,#用通用函数

    Pandas Pandas Pandas

    以上三图解释,df数据和series运算操作的原则。

    相关文章

      网友评论

          本文标题:Pandas

          本文链接:https://www.haomeiwen.com/subject/hcttdctx.html