pandas實現(xiàn)數據concat拼接的示例代碼
使用場景:批量拼接相同格式的excel、給DataFrame添加行、給DataFrame添加列等。
語法
使用某種方式合并方式(inner/outer)、沿著某個軸向(axis=0/1)、把多個Pandas對象(DataFrame/Seires)拼接成一個。
pandas.concat(objs, *, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=None)
返回值:
- 當沿索引(axis=0)連接所有 Series 時,返回一個 Series。
- 當 objs 中包含至少一個 DataFrame 時,返回一個 DataFrame。
- 當沿列(axis=1)連接時,返回一個 DataFrame。
參數說明:
- objs:需要連接的對象(如 DataFrame 或 Series)的列表或字典。
- axis:指定連接軸。{0/’index’, 1/’columns’}, 默認0。axis=0:沿行方向連接(垂直堆疊)。axis=1:沿列方向連接(水平堆疊)。
- join:指定連接方式,{‘inner’, ‘outer’},默認為 ‘outer’。join=‘outer’:外連接,保留所有索引(默認)。join=‘inner’:內連接,只保留共有索引。
- ignore_index:是否忽略原始索引并生成新的整數索引。bool,默認為 False。ignore_index=True:忽略原始索引,生成新的整數索引。ignore_index=False:保留原始索引。
- keys:為連接后的對象添加外層索引(多層索引)。list 或 tuple。
- levels:與 keys 參數配合使用,指定多層索引的具體層級。list 或 tuple。
- names:為多層索引的層級命名。list 或 tuple。
- verify_integrity:是否檢查新索引是否有重復。bool,默認為 False。
- sort:是否對非連接軸進行排序。bool,默認為 False。
- copy:是否復制數據。bool,默認為 True。
示例:使用pandas.concat合并數據
第1個DataFrame:
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']})
查看數據:

第2個DataFrame:
df2 = pd.DataFrame({'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7'], 'E': ['E4', 'E5', 'E6', 'E7']})
查看結果:

默認的concat:參數axis=0,join=‘outer’,ignore_index=False
pd.concat([df1, df2])
合并后的結果:

使用ignore_index=True參數可以忽略原來的索引
pd.concat([df1, df2], ignore_index=True)
合并后的數據:

使用join='inner’參數過濾掉不匹配的列
pd.concat([df1, df2], ignore_index=True, join='inner')
合并后的數據:

使用axis=1相當于添加新列
添加一列Series
DataFrame:

再構造一個Series:
s1 = pd.Series(list(range(10, 14)), name='F')

按列合并:
pd.concat([df1, s1], axis=1)
合并后的結果:

添加多列Series
DataFrame:

第1個Series:

第2個Series:
s2 = df1.apply(lambda x : x['D'] + '_G', axis=1) s2.name = 'G'

合并1個DataFrame和2個Series:
pd.concat([df1, s1, s2], axis=1)
合并后的結果:

concat的要合并的對象參數可以只包含Series列表


合并兩個Series:
pd.concat([s1, s2], axis=1)
合并后的結果:

concat的要合并的對象參數DataFrame和Series順序可以混合
要合并的DataFrame:

要合并的Series:

要合并的Series:

合并數據:
pd.concat([s1, df1, s2], axis=1)
合并后的結果:

一行一行給DataFrame添加數據
先生成一個空的DataFrame:
df = pd.DataFrame(columns=['S'])

利用concat可以接受對象列表的特點,進行拼接:
pd.concat([pd.DataFrame([i], columns=['S']) for i in range(6)], ignore_index=True)
拼接后的結果:

到此這篇關于pandas實現(xiàn)數據concat拼接的示例代碼的文章就介紹到這了,更多相關pandas concat拼接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django中的CACHE_BACKEND參數和站點級Cache設置
這篇文章主要介紹了Django中的CACHE_BACKEND參數和站點級Cache設置,Python是最具人氣的Python web框架,需要的朋友可以參考下2015-07-07

