Pandas高级篇——数据处理
1.数据合并
(1)数据合并取交集
(2)merge方法的各种连接:内连接,外连接,左连接,右连接,pd.merge(df1,df2,on=”key”,how=”“)
(3)Series数据的连接,pd.concat(axis=”0或1”)
(4)Series乘法
(5)join=”inner”,取交集。pd.concat([s1,s4],axis=1,join=”inner”)
pd.concat([s1,s4],axis=1,join="inner")
0 1
a 0 0
b 1 5
(6)利用concat生成具有层次化索引数据结构Series
(7)合并时索引重叠情况,即打补丁处理
DataFrame利用combine_first进行数据打补丁操作
2.数据拆分
(1)pd.cut()分组,pd.value_counts()统计,.codes对区间分组返回索引
(2)pd.cut(labels=)加标签,plt.hist()画直方图
3.数据的替换,series.replace(a,b)**
(1)将多个值统一替换成一个指定的值
series.replace([-999,-1000],NA)
0 1.0
1 NaN
2 2.0
3 NaN
4 NaN
5 3.0
dtype: float64
(2)针对不同的值,进行不同的替换
4.数据转化、清除重复数据
(1)duplicated() 获取的是bool值
(2)drop_duplicates方法去除重复的数据行
data.drop_duplicates([“k1”,”k2”]) 与drop_duplicates()效果一样
(3)传入keep参数指定需要保留哪些重复的索引
(4)通过map函数和字典的映射,添加数据列
x.lower()将x变成小写
5.数据重塑和旋转
data.unstack()行索引转换成列索引
data.stack()列索引转换成行索引
(1)Series行列索引转换
(2)DataFrame行列索引转换,pd.Index([” “,” “],names=” “)指定索引与其名称
(3)由层次化的行索引转换到列索引的时候指定需要转换的行索引的层数
(4)对DataFrame进行unstack操作时,作为旋转轴的级别将会成为结果中的最低级别
1.stack将列索引变行索引,即将number变为行索引,此时state和number都是行索引
2.将result1拼成df,此时df的行索引:state和number;列索引:side
3.result2=df.unstack(“state”)指定df行索引中state变列索引,此时result2行索引:number;列索引:side和state
4.result2.unstack()将行索引number变成列索引,此时全是列索引,只有一个维度的索引,因此它是Series类型
(5)传入参数dropna=True,False,使得最终结果可逆,不可逆
dropna=True,可逆
dropna=False,不可逆