数据合并之concat、append、merge和join
Pandas 是一套用于 Python 的快速、高效的數據分析工具。它可以用于數據挖掘和數據分析,同時也提供數據清洗功能。本文將詳細講解數據合并與連接,目錄如下:
①
concat
一.定義
concat函數可以在兩個維度上對數據進行拼接,默認縱向拼接(axis=0),即按行拼接。拼接方式默認為外連接(outer),即取所有的表頭字段或索引字段。
二.語法
pd.concat(objs,axis=0, join='outer', ignore_index=False,
keys=None,levels=None, names=None, verify_integrity=False,?
copy=True)
參數釋義:
objs:需要用于連接合并的對象列表
axis:連接的方向,默認為0(按行),按列為1
join:連接的方式,默認為outer,可選inner只取交集
ignore_index:合并后的數據索引重置,默認為False,可選True
keys:列表或數組,也可以是元組的數組,用來構造層次結構索引
levels:指定用于層次化索引各級別上的索引,在有keys值時
names:用于創建分層級別名稱,在有keys和levels時
verify_integrity:檢查連接對象中新軸是否重復,若是則異常,默認為False允許重復
copy:默認為True,如果是False,則不會復制不必要的可以提高效率
三.代碼示例
首先,我們看一個簡單的例子:
以上代碼構建了3個字典并轉為DataFrame,然后通過concat實現默認方式合并。合并演示如下:
1.設置參數keys
2.設置axis參數
axis=1按列合并,默認情況下,join='outer',合并時索引全部保留,對于不存在值的部分會默認賦NaN。
3.設置join參數
4.設置ignore_index參數
5.Series與DataFrame合并
②
append
一.定義
運用append方法,可以將Series或字典數據添加到DataFrame。
二.代碼示例
③
merge
一.定義
merge函數可根據一個或多個鍵(列)相同進行DataFrame拼接。類似于關系型數據庫的join操作。
二.語法
pd.merge(left, right, how='inner', on=None, left_on=None,?
right_on=None,left_index=False,right_index=False, sort=True,
suffixes=('_x', '_y'), copy=True, indicator=False,validate=None)
參數釋義:
left:參與合并的左側數據
right:參與合并的右側數據
how:合并類型:inner(默認內連接)、outer(外連接)、left(左連接)、right(右連接)
on:用于連接的列名,默認為左右側數據共有的列名,指定時需要為左右側數據都存在的列名
left_on:左側數據用于連接的列
right_on:右側數據用于連接的列
left_index:將左側索引作為連接的列
right_index:將右側索引作為連接的列
sort:排序,默認為True,設置為False可提高性能
suffixes:默認為('_x', '_y'),可以自定義如('date_x','date_y')
copy:默認為True,如果是False,則不會復制不必要的可以提高效率
indicator:指示器,默認False,設置為True時會新增一列標識
validate:字符串,如果指定則會檢測合并的數據是否滿足指定類型(1對1,1對多,多對1,多對多)
三.示例
首先,我們看一個簡單的例子:
1.設置參數how
2.設置validate參數
3.設置indicator參數
4.設置left_on參數和right_on參數
④
join
一.定義
join可以將兩個沒用共同列名的數據進行快速合并,默認是保留被合并的數據索引。join接受的參數有how、on和suffix等。
二.示例
E?N?D
各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)
推薦閱讀
牛逼!Python常用數據類型的基本操作(長文系列第①篇)
牛逼!Python的判斷、循環和各種表達式(長文系列第②篇)
牛逼!Python函數和文件操作(長文系列第③篇)
牛逼!Python錯誤、異常和模塊(長文系列第④篇)
總結
以上是生活随笔為你收集整理的数据合并之concat、append、merge和join的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GUI可视化利器,让实时数据可视化so
- 下一篇: 危!我用python克隆了女朋友的声音!