大家知道在pandas的資料框架中,資料格式物件主要有兩種,一種是Series,另一種則是比較常見的DataFrame資料物件,pandas.concat()連接函式主要是用于處理這兩種物件的資料連接!

【閱讀全文】
函式說明
'''
cancat()函式
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
引數說明:
objs:Series,DataFrame或Panel物件的序列或映射,如果傳遞了dict,則排序的鍵將用作鍵引數,除非它被傳遞,在這種情況下,將選擇值(見下文),任何無物件將被靜默洗掉,除非它們都是無,在這種情況下將引發一個ValueError,
axis:{0,1,...},默認為0,沿著連接的軸,
join:{'inner','outer'},默認為“outer”,如何處理其他軸上的索引,outer為聯合和inner為交集,
ignore_index:boolean,default False,如果為True,請不要使用并置軸上的索引值,結果軸將被標記為0,...,n-1,如果要連接其中并置軸沒有有意義的索引資訊的物件,這將非常有用,注意,其他軸上的索引值在連接中仍然受到尊重,
join_axes:Index物件串列,用于其他n-1軸的特定索引,而不是執行內部/外部設定邏輯,
keys:序列,默認值無,使用傳遞的鍵作為最外層構建層次索引,如果為多索引,應該使用元組,
levels:序列串列,默認值無,用于構建MultiIndex的特定級別(唯一值),否則,它們將從鍵推斷,
names:list,default無,結果層次索引中的級別的名稱,
verify_integrity:boolean,default False,檢查新連接的軸是否包含重復項,這相對于實際的資料串聯可能是非常昂貴的,
copy:boolean,default True,如果為False,請勿不必要地復制資料,
'''
Series 資料處理
普通合并
# 匯入pandas資料處理庫
import pandas as pd
# 初始化series_1資料物件
series_1 = pd.Series(['a', 'b','c'])
# 初始化series_2資料物件
series_2 = pd.Series(['c', 'd'])
# 合并series_1、series_2
res = pd.concat([series_1, series_2])
# 列印合并結果
print(res)
# 0 a
# 1 b
# 2 c
# 0 c
# 1 d
忽略索引合并
# 合并series_1、series_2,忽略索引
res = pd.concat([series_1, series_2],ignore_index=True)
# 列印合并結果
print(res)
# 0 a
# 1 b
# 2 c
# 3 c
# 4 d
添加分層索引合并
# 合并series_1、series_2,忽略索引
res = pd.concat([series_1, series_2],keys=['series_1','series_2'])
# 列印合并結果
print(res)
# series_1 0 a
# 1 b
# 2 c
# series_2 0 c
# 1 d
添加資料列合并
# 合并series_1、series_2,添加資料列名
res = pd.concat([series_1, series_2],keys=['series_1','series_2'],names=['Series ID', 'index'])
# 列印合并結果
print(res)
# Series ID index
# series_1 0 a
# 1 b
# 2 c
# series_2 0 c
# 1 d
DataFrame 資料處理
合并兩個相同列的DataFrame物件
# 創建DataFrame物件dataframe_1
dataframe_1 = pd.DataFrame([['coding', 'python'], ['type', '1']], columns=['名稱', '型別'])
# 創建DataFrame物件dataframe_2
dataframe_2 = pd.DataFrame([['coding', 'java'], ['type', '2']], columns=['名稱', '型別'])
# 合并兩個列相同的DataFrame物件dataframe_1、dataframe_2
res = pd.concat([dataframe_1, dataframe_2])
# 列印合并DataFrame物件
print(res)
# 名稱 型別
# 0 coding python
# 1 type 1
# 0 coding java
# 1 type 2
合并重疊的DataFrame
# 創建DataFrame物件dataframe_3
dataframe_3 = pd.DataFrame([['coding', 'java','91'], ['type', '2','93']], columns=['名稱', '型別','評分'])
# 合并兩個不相同的DataFrame物件dataframe_1、dataframe_3
# 合并時不存在的列則使用Nan值進行合并
res = pd.concat([dataframe_1, dataframe_3],sort=False)
# 列印合并DataFrame物件
print(res)
# 名稱 型別 評分
# 0 coding python NaN
# 1 type 1 NaN
# 0 coding java 91
# 1 type 2 93
# join='inner',去除重疊交叉的列
res = pd.concat([dataframe_1, dataframe_3],join='inner')
print(res)
# 0 coding python
# 1 type 1
# 0 coding java
# 1 type 2
歡迎關注作者公眾號【Python 集中營】,專注于后端編程,每天更新技術干貨,不定時分享各類資料!本文由WeiXin公眾號【python 集中營】一鍵發布,更多精彩文章、視頻資料即可領取!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/303457.html
標籤:其他
