pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,最常用的数据结构是:序列Series和数据框DataFrame,Series类似于numpy中的一维数组,类似于关系表的一列;而DataFrame类似于二维的关系表。
>>> import pandas as pd >>> from pandas import Series,DataFrame
用dtype属性来显示元素的数据类型,pandas主要有以下几种dtype:
Series 是由一组有序的数据以及与之相关的索引组成,可以通过索引来访问Series对象中的元素。
1,创建序列
仅使用一组数据就可以产生最简单的Series,此时索引是从0依次递增的整数:
obj=Series([4,7,-5,3])
可以通过Series对象的values和index属性查看序列的值和索引:
obj.values ## array([4,7,-5,3]) obj.index ## Int64Index([0,1,2,3])
可以使用自定义的列表来创建序列:
obj=Series([4,7,-5,3],index=[‘d‘,‘b‘,‘a‘,‘c‘])
如果数据存储在一个Python字典结构中,也可以直接通过字典来创建Series:
>>> sdata = {‘b‘: 12, ‘a‘: 13, ‘d‘: 14, ‘c‘: 10} >>> sd=pd.Series(sdata) b 12 a 13 d 14 c 10 dtype: int64
2,访问序列的元素
通过索引来访问序列的元素,并可以修改序列元素的值
sd[‘a‘]=4
数据框类似于二维的关系表,含有一组有序的列,每列可以是不同的数据类型;DataFrame既有行索引(index),也有列索引(columns),可以认为,DataFrame的每一列都是一个Series对象。
1,使用DataFrame函数来创建数据框
通过等长的字典来创建数据框,并可以设置数据框的列名和行索引。
>>> data = {‘state‘: [‘Ohio‘, ‘Ohio‘, ‘Ohio‘, ‘Nevada‘, ‘Nevada‘], ... ‘year‘: [2000, 2001, 2002, 2001, 2002], ... ‘pop‘: [1.5, 1.7, 3.6, 2.4, 2.9]} >>> row_num = [‘one‘, ‘two‘, ‘three‘, ‘four‘, ‘five‘] >>> col_names=[‘year‘, ‘state‘, ‘pop‘] >>> df=pd.DataFrame(data,columns=col_names,index=row_num) year state pop one 2000 Ohio 1.5 two 2001 Ohio 1.7 three 2002 Ohio 3.6 four 2001 Nevada 2.4 five 2002 Nevada 2.9
2,访问DataFrame的元素
通过列名,访问DataFrame的元素的方法有两种:索引方式和. 号方式,这两种方式返回的都是数据框中一整列的数据:
df[‘state‘] df.state
通过行索引可以返回一整行的数据,行索引可以通过位置或名称来获取,使用对象的索引字段ix:
df.ix[‘three‘]
3,修改DataFrame对象
修改已有的数据,例如,设置第一列的值,把第一列的值全部设置为“NewYork”
df.state[0]=‘NewYork‘
当对不存在的列赋值时,pandas会向DataFrame对象中新建一列:
df[‘avg_age‘]=34
关键字 del 用于删除DataFrame中的列:
del df[‘age‘]
4,DataFrame的索引
obj是DataFrame对象,有多种方式来索引DataFrame对象:
drop()函数用于删除指定轴(Axis)上的数据项,
drop(labels=None, axis=0, index=None, columns=None,level=None, inplace=False):
参数注释:
注意:对于 inplace参数,如果设定为True,那么原始序列或数据框直接被替换;如果设置inplace=False,原始序列或数据框对应的内存值并不改变,要保留函数执行的结果,需要将新的结果赋给一个新的对象。先删除index=0的行,再删除列名为a的数据
1,基于index 和columns来删除数据
先删除index=0的行,再删除列名为a的数据
df.drop(index=0)
df.drop(colum=‘a‘)
2,基于labels和axis来删除数据
先删除 "行号为0" 的数据,再删除列名为a的数据
df.drop(labels=0, axis=0)
df.drop(labels=‘a‘,axis=1)
缺失值NA的处理方法:
参考文档:
pandas 学习(1): pandas 数据结构之Series
Pandas: Drop函数(Dataframe删除指定行列)
原文:https://www.cnblogs.com/ljhdo/p/10593914.html