Pandas

Pandas是python的一个数据分析包,包含以下几种数据结构:

1. Series:类似于一维数组,包含索引和值两个部分

2. DataFrame: 类似于二维数组,用于存放二维表格型数据结构,包含行索引、列索引和值三个部分

Series

1. 创建:

默认索引:S1 = pd.Series(['Sam', 15, 'France', 'male'])   

指定索引:S1 = pd.Series(['Sam', 15, 'France', 'male'], index=['name','age','country','gender'])   

字典创建:S1 = pd.Series({'name':'Sam', 'age':15, 'country':'France', 'gender':'male'})   

字典+索引:S1 = pd.Series({'name':'Sam', 'age':15, 'country':'France', 'gender':'male'}, index=['name', 'gender', 'age', 'country'])

上一行代码创建的Series如下所示

2. 访问

通过索引名:S1['name']

通过序号:S1[0]

布尔索引:S1[S1.index == 'age'] 或 S1[S1.values == 15] 

3. 操作

赋值:通过访问即可赋值

增加元素:S1['height'] = 160

删除元素:S1.drop('gender', inplace = True)    参数inplace表示是否修改原数据  

检测缺失值:S1.isnull() 或 S1.notnull()

删除缺失值:S1.dropna()

4. 属性

Series的值:S1.values

Series的索引:S1.index

Series的形状:S1.shape

DataFrame

1. 创建:

字典创建

D1 = pd.DataFrame({'name':['Sam','Anna','David'],
                   'age':[15,14,16], 
                   'country':['France','Sweden','Canada'], 
                   'gender':['male','female','male']},
                   index=['a','b','c']) 

列表创建

D2 = pd.DataFrame([['Sam',15,'France','male'],
                   ['Anna',14,'Sweden','female'],
                   ['David',16,'Canada','male']],
                   index=['a','b','c'],
                   columns=['name','age','country','gender'])  

 以上两块代码创建的DataFrame均如下所示

 创建空列表(指定列名)

 pd.DataFrame(columns=('name','age','country','gender'))

2. 访问

通过列索引:D1['name'] 或 D1.name

通过iloc方法:

D1.iloc[[0,0]]  得到第一行第一列

D1.iloc[0]  得到第一行

D1.iloc[:,0]  得到第一列

D1.iloc[[0,1],[0,1]]  得到前两行和前两列的交叉部分

通过loc方法:

loc方法与iloc方法基本相同,区别在于loc方法通过索引名访问数据,iloc通过索引序号访问数据

例如 D1.loc['a','name']  得到第一行第一列

3. 操作

赋值:通过访问即可赋值

增加列:D1['height'] = [160, 150, 170]  

增加行:D1 = D1.append({'name': 'Tommas', 'age': 13, 'country': 'USA', 'gender': 'male'}, ignore_index=True)

删除行或列:D1.drop(['age', 'gender'], inplace = False, axis = 1)  参数axis表示行或列

检测缺失值:D1.isnull() 或 D1.notnull()

删除缺失值:D1.dropna(axis=*)

填充缺失值:D1.fillna(*)

按条件(年龄)筛选行:D1[D1['age'] > 14]  或者  D1[(D1['age'] > 14) & (D1['age'] < 16)]

修改列名: D1.rename(columns = {'name': 'NAME', 'age': 'AGE'},  inplace=True)

合并:pd.concat([D1, D1])

4. 属性

DataFrame的值:D1.values

DataFrame的行索引:D1.index

DataFrame的列索引:D1.columns

DataFrame的形状:D1.shape

 

posted @ 2020-07-11 21:07  Bill_H  阅读(179)  评论(0编辑  收藏  举报