pandas库可用作数据处理和数据分析,常用两种数据结构:Series和DataFrame。Series由一组数据和与之对应的数据标签(即索引)构成,DataFrame类似于数据库中表或者Excel中表格数据格式,既有行索引又有列索引,DataFrame可看作由多个Series构成,每个Series看成是DataFrame的一个列。
一.Series的创建
![fd64419f4c3ebbaf22b0da0c2d0c5808.png](https://i-blog.csdnimg.cn/blog_migrate/9a298e606286e9368a3e64879aaba231.jpeg)
二.DataFrame创建
![fa59cbe99360ddd436ae2f818bc1807c.png](https://i-blog.csdnimg.cn/blog_migrate/537be6ec974378a774ddcbc9d63a2ee9.jpeg)
三.pandas数据读取和保存
1.csv文件和Excel文件的读取和保存
pd.read_csv(filename,encoding,dtype,nrows,sep,na_values,header=0)
此命令读取csv文件,filename是文件的存放路径和文件名,nrows指定读取前多少行,sep指定分隔符,na_values定义缺失值,header=0默认把第一行当做表头不读入数据
pd.read_excel(filename,encoding,dtype,sheet_name)
此命令读取excel文件,sheet_name指定工作簿中要打开的工作表名称,dtype指定打开后各字段的数据类型,以字典形式给出
![8486ce9fe7f0e9fa67abdc60b5818be1.png](https://i-blog.csdnimg.cn/blog_migrate/de85bd75c9ccb95b34861ce398d215fd.png)
2.mysql数据库文件读取和保存
读取:
![c078f855e16d2ec7ce4aebad6254a639.png](https://i-blog.csdnimg.cn/blog_migrate/3fbe3d660ec77801931c6360adedc2fe.png)
保存:
![e97708d5d2005e81d350957caee362cc.png](https://i-blog.csdnimg.cn/blog_migrate/cc07cd672d183c2e1c8ebcbfa0f831cc.png)
四.数据增删改查
![3b524ed1e638664467d6fcde1738ad4b.png](https://i-blog.csdnimg.cn/blog_migrate/9cd1269202d323d7b0e148c6823e0494.jpeg)
![863c968922330aeba02715c93cc57d77.png](https://i-blog.csdnimg.cn/blog_migrate/32f7c79cf176be8136972c1b461b407a.jpeg)
五.数据合并
![6a18df1a61995bd618dafc439949e60d.png](https://i-blog.csdnimg.cn/blog_migrate/0342925b42c701d33112f98f86d57d7d.jpeg)
六.数据排序、分组、聚合
![b6e95fdb8a1278ca677bcb3ca3b1f265.png](https://i-blog.csdnimg.cn/blog_migrate/b06a51f8a7bd4d6fcb84449550429d65.png)
![28f7bd3d5932951173da4871ecc5c929.png](https://i-blog.csdnimg.cn/blog_migrate/62a8934b4b47f8972b24eed866d1b25a.png)
![4b90048e1215d22fa02892396fd39ae8.png](https://i-blog.csdnimg.cn/blog_migrate/65fc2c935f35e4f6cee450547d67081f.jpeg)
七.基本统计量计算、透视表和交叉表函数
![19e96446eecb0242395d787b6219485f.png](https://i-blog.csdnimg.cn/blog_migrate/7c7c19dd8cbbabdca964ddb302092eb3.png)
透视表:
pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
注:data是原数据表,values是要计算的数值型字段,index是行分组键,columns是列分组键,aggfunc是聚合函数,fill_value为对缺失值的处理,margins是否需要总计,dropna是否删除缺失值
交叉表:
pd.crosstab(index, columns, values=None,rownames=None, colnames=None, aggfunc=None, margins=False, dropna=True, normalize=False)
注:normalize=‘columns’计算列百分比,normalize=‘index’计算行百分比
八.数据类型转换
![b0dd660b23381e703b8a6489f7c1d972.png](https://i-blog.csdnimg.cn/blog_migrate/938c16fc98e3f80cf8d42e3e1d4cfaa6.jpeg)
![5a0d07a70579855954c6b21f506a4910.png](https://i-blog.csdnimg.cn/blog_migrate/05608cba9b0ccec267f167e900946ed2.jpeg)
九.层次化索引
![f66566aadbf3032a5f18542b035c15db.png](https://i-blog.csdnimg.cn/blog_migrate/7dc41fd98357dbb877513e116e934bf3.jpeg)