Pandas

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)列运算,#用通用函数

图片发自简书App

图片发自简书App

图片发自简书App

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。