导入模块
import pandas as pd
import numpy as np
1.数据合并
merge()函数
pd.merge(frame1,frame2,on='id')
on选项指定基于哪一列进行合并,可以指定多个列来合并多个键
left_on,right_on 可分别指定第一个和第二个DataFrame的基准列
how=‘outer’(或left/right)指定外连接、左连接或右连接,默认为内连接
jion()函数
frame1.join(frame2)
以索引列为基准直接拼接
frame1和frame2列名称不能有重复的
2.拼接
NumPy中的concatenate()函数
np.concatenate([array1,array2],axis=0) #按列拼接
pandas的concat()函数
对Series对象:
pd.concat([ser1,ser2],axis=1,key=[1,2])
默认axis=0按列拼接;key用来创建等级索引
对DataFrame对象:
pd.concat([frame1,frame2],axis=1)
默认axis=0按列拼接
3.组合
conbine_first()函数
组合Series对象,同时对齐数据
ser1 = pd.Series(np.arange(5),index=[1,2,3,4,5])
'''ser1
1 0
2 1
3 2
4 3
5 4
'''
ser2 = pd.Series(np.arange(3),index=[3,5,7])
'''ser2
3 0
5 1
7 2
'''
ser1.combine_first(ser2)
'''返回
1 0.0
2 1.0
3 2.0
4 3.0
5 4.0
7 2.0
'''
ser2.combine_first(ser1)
'''返回
1 0.0
2 1.0
3 0.0
4 3.0
5 1.0
7 2.0
'''
只合并部分内容
ser1 = pd.Series(np.arange(5),index=[1,2,3,4,5])
ser2 = pd.Series(np.arange(3),index=[3,5,7])
ser1[2:].combine_first(ser2)
'''返回
3 2.0
4 3.0
5 4.0
7 2.0
'''
4.删除
删除一列,对DataFrame使用del命令
del frame['A'] #删除列名称为'A'的一列
删除一行,使用drop()函数
frame.drop('white') #删除index为'white'的一行
参考:
法比奥·内利. Python数据分析实战:第2版.北京:人民邮电出版社, 2019.11.