Pandas 学习笔记基础知识汇总

一、pandas读取和存储excel、csv文件

1、df1 = pd.read_excel( file_path ,index_col = ‘col2’ ) 设置索引列为col2,读取出来的数据是dataframe格式

2、df2 = pd.read_csv( serprator =’::’,engine = python) 设置分隔符和读取引擎

3、dataframe.to_excel( file_path ) dataframe.to_csv( )

4、pd.read_excel(filepath,skiprows=2) 跳过前2行

二、pandas loc定位的使用

1、df.loc[] 可以查询,可以赋值,按单个label查询,使用条件查询,切片区间查询(行列可以同时设定区间),可以跟函数

2、df.loc[].str.replace() 可以跟str相关函数str.startwith , str.endwith

3、df.loc[lambda df: (df[‘age’] > 18) & (df[‘age’] < 35) , : ] 筛选年龄介于18到35的行,列不筛选所以冒号梁板没有内容

​ df.loc[df[‘age’] < 18 , ‘type’] = ‘少年’ 新增一个列,对小于18岁的,类型是少年

4、一维的数据是series,二维是数据是dataframe

5、pandas的与是& python的与是and

6、df.iloc[] df.where() df.query()

三、pandas新增或修改数据列

1、直接赋值

2、df.apply()方法,沿着series的某个轴逐个数据应用函数。

3、df.assign()可以同时添加多个列

四、pandas的统计函数

1、通过df.describe() 可以发现,有mean min max std quantile等

2、df.[‘name’].unique() 去重后返回一个数组

3、df.[‘class’].value_counts() 统计不同值出现过几次

4、df.cov() 协方差矩阵,为正是通向变化

5、df.corr() 相关系数矩阵,-1~1 相关性大小和方向

6、使用方法df[‘age’].cov(df[‘class’]) ,也可以查看整改表的相关系数 df.corr()

五、pandas对缺失值的处理(数据清洗)

1、isnull和notnull,判断是否空值,可以用于dataframe和series,可以判断某一列,或者某个范围

2、df.dropna() 删除空行参数可以指定行数和列,axis=columns(index) , how=any(all) ,inplace=True(False)

3、df.fillna(‘分数’,0) 填充空值 , df.fillna(‘姓名’,method=“ffill”) 使用前面的姓名填充缺失的姓名(适用于excel中姓名列相同姓名被合并了单元格的情况)

4、df.to_excel(new_filepath,index=False) 把df存到新的excel文件中

5、pd.read_csv() 参数engine=python的意义

六、pandas处理copy报警

1、settingwithcopywarning,视图view的修改会影响原df,copy是一个副本不会影响原df

2、df.loc[condition,‘总分’] =df[’'数学] + df[‘语文’] 通过直接赋值的方式避开警告

3、也可以先创建一个copy,对copy进行整理后再赋值给原df

七、pandas数据排序

1、series.sort_values(acending=False,inplace=True) 对series进行降序排序,替换原数据

2、dataframe.sort_values(by[‘col1’,‘col2’], ascending=[False , True], inplace = True) 对dataframe的col1和col2列进行降序排序,替换原数据,可以单独设置每个列的升降序

八、pandas对字符串的处理

1、只能对series操作,并且只能对string类型操作

2、df[‘name’].str.strip() 删除name中的空格

3、其他函数:df.loc[].str.replace() 可以跟str相关函数str.startwith() , str.endwith(),str.contains(),str.isnumeric() , str.len() , str.split() , str.slice() 切片 , 多个函数可以连续操作str.func1().str.func2() , str都要写

4、正则表达式的语法方式:str.loc[‘日期’].str.replace([‘年月日’],’’) 把日期中的年 月 日都替换成空

九、pandas的axis参数

1、axis=0或者index是对行操作,axis=1或者columns是对列操作

2、df.drop(‘A’,axis=1) 删除列名为A的这一列, df.drop(‘A’,axis=0) 删除行名为A的这一行

3、df.mean(axis=0) 对每一列的数据相加并求平均数,因为axis=0那么每一行 的数据都要动起来,参与求和和求平均的操作

4、df.mean(axis=1) 对每一行的数据求和再求平均,因为axis=1 那么 每一列 的数据要横向动起来,参与求和 求平均操作

十、pandas的索引 index的用处

1、df.set_index(‘name’,inplace=True,drop=False) 把name设置成df的index,保留原来的name列

2、查询name=‘张三’ 的所有行就可以简化成: df[‘张三’] 原来查询需要:df.loc[df['name']=='张三'] 或者 df[df['name']=='张三']

3、合理设置index提高查询效率。如果index是唯一的,pandas用哈希表优化查找

4、合理设置index提高查询效率。如果index是有序的,pandas采用二分查找

5、 % timeit 返回程序运行时间

6、df_shuffle.loc[‘name’] 打乱姓名排序

7、index有自动对齐功能,两个series相加,如果index相同,该行直接相加,如果不同则无法相加

8、使用index更多更强大的数据结构支持,如groupby , datetimeindex

十一、pandas的merge语法

1、相当于sql的join,将不同的表按key关联到一个表

2、pd.merge(left_df,right_df,how,on,sort,suffixes)

on:列名,join用来对齐的那一列的名字,用到这个参数的时候一定要保证左表和右表用来对齐的那一列都有相同的列名

how:数据融合的方法, inner交集 outer并集 left完全保留左边 right完全保留右边

sort:根据dataframe合并的keys按字典顺序排序,默认是,如果置false可以提高表现。

suffixes:如果非key列名重复,通过这个参数加后缀

十二、pandas的数据合并concat 、 append 、join语法

1、concat可以给df添加行 或 列

2、pd.concat([df1,series1…] , axis=0 , join = ‘outer’ , ignore_index = False)

合并方式:inner 或 outer

合并方向:axis =1 或 0

ignore_index :是否忽略掉原来的索引,重新从0开始添加索引

4、df1.append(df2 , ignore_index = False) 只能按行合并,可以是series 可以是list

5、通过类似列表推导式给空series添加元素:

pd.concat([pd.dataframe( [i]) , columns=['A'] ) for  i  in  range 
  • 9
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值