数据清洗(2.2):concat函数
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False)
主要学习axis和join。
igore_index为行索引,下面的例子中True就是不显示人物名字,默认False显示名字
axis=0对应行,1对应列,join有两种行驶,外连接(outer)和内连接(inner)
情况一:不同字段:

(1)pd.concat([h1,h2],axis=0,join='inner')
比较列名:语数英和篮球舞蹈没有交集,所以显示[]
Empty DataFrame
Columns: []
Index: [韩梅梅, 李雷, 李华, 王明, 铁蛋, 李华, 王明, 铁蛋, 刘强]
(2)pd.concat([h1,h2],axis=1,join='inner')
比较行名:李华,王明,铁蛋为交集,显示三条记录。

(3)pd.concat([h1,h2],axis=0,join='outer')
按照行作为标准进行外连接,可以列重叠

比如,把篮球改为英语,结果变为:

(4) df3 = pd.concat([h1,h2],axis=1,join='outer')
按照列为标准外连接,行可以重叠

同样,把篮球改为英语,结果变为:
语文 数学 英语 英语 舞蹈
韩梅梅 93.0 87.0 80.0 NaN NaN
李雷 80.0 99.0 85.0 NaN NaN
李华 85.0 95.0 97.0 93.0 87.0
王明 76.0 85.0 65.0 80.0 99.0
铁蛋 58.0 70.0 88.0 85.0 95.0
刘强 NaN NaN NaN 76.0 85.0
情况二:相同字段:
表一:
语文 数学 英语
韩梅梅 93 87 80
李雷 80 0 85
李华 85 95 97
王明 76 85 65
铁蛋 58 70 88
表二:
语文 数学 英语
戴小帅 93 87 80
张三 80 99 0
李四 85 95 97
王明 76 85 65
王小红 58 70 88
(1)df4 = pd.concat([h1,h2],axis=1,join='outer')
语文 数学 英语 语文 数学 英语
韩梅梅 93.0 87.0 80.0 NaN NaN NaN
李雷 80.0 0.0 85.0 NaN NaN NaN
李华 85.0 95.0 97.0 NaN NaN NaN
王明 76.0 85.0 65.0 76.0 85.0 65.0
铁蛋 58.0 70.0 88.0 NaN NaN NaN
戴小帅 NaN NaN NaN 93.0 87.0 80.0
张三 NaN NaN NaN 80.0 99.0 0.0
李四 NaN NaN NaN 85.0 95.0 97.0
王小红 NaN NaN NaN 58.0 70.0 88.0
(2)df3 = pd.concat([h1,h2],axis=0,join='outer')

语文 数学 英语
韩梅梅 93 87 80
李雷 80 0 85
李华 85 95 97
王明 76 85 65
铁蛋 58 70 88
戴小帅 93 87 80
张三 80 99 0
李四 85 95 97
王明 76 85 65
王小红 58 70 88
(3)df2 = pd.concat([h1,h2],axis=1,join='inner')

语文 数学 英语 语文 数学 英语
王明 76 85 65 76 85 65
(4)df1 = pd.concat([h1,h2],axis=0,join='inner')

语文 数学 英语
韩梅梅 93 87 80
李雷 80 0 85
李华 85 95 97
王明 76 85 65
铁蛋 58 70 88
戴小帅 93 87 80
张三 80 99 0
李四 85 95 97
王明 76 85 65
王小红 58 70 88
参考:
https://blog.csdn.net/gdkyxy2013/article/details/80785361
https://blog.csdn.net/L573459885/article/details/105240857

浙公网安备 33010602011771号