pandas concat_pandas-数据合并-concat(最全参数解释,含代码和实例)
pandas中的concat的功能:
假設(shè)你現(xiàn)在需要將多個數(shù)據(jù)合并,前提是:這幾個文件列名都一致,也就是說這幾個文件格式完全一樣,只是數(shù)據(jù)不太一樣,類似于合并多個文件這種,實際數(shù)據(jù)分析中也會遇到這種情況,那該怎么做呢?(可能也會遇到格式不一樣的情況,當(dāng)然也是可以合并的正文也會講解)下面來一起學(xué)習(xí)下在pandas中如何快速合并文件:
主要分為兩種情況
縱向合并:
需要注意的是,axis=0也就是默認(rèn)值的時候,合并的時候是按照兩個數(shù)據(jù)的列名稱作為鍵來和合并的。
s1 = pd.Series(['a', 'b'])s2 = pd.Series(['c', 'd'])pd.concat([s1, s2])橫向合并:(axis=1,)
類似于merge,但是和merge也不一樣,如果設(shè)置axis=1合并的時候是按照索引來合并的,merge可以設(shè)置左右兩個數(shù)據(jù)的合并鍵,這點要區(qū)分。
result = pd.concat([df1, df4], axis=1)需要重點掌握的概念:
通過上面兩個簡單的例子,應(yīng)該能初步認(rèn)識concat
下面通過實例完整的掌握這個知識點:
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
最簡單的縱向合并(有人也叫軸向合并,但是我總分不清楚,就叫它縱向合并吧)
import pandas as pdone = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5])two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5])rs = pd.concat([one,two])print(rs)結(jié)果:
objs︰ 傳入一個需要合并的序列
axis: {0,1,...},默認(rèn)值為 0。要連接沿軸。
ignore_index︰ 布爾值、 默認(rèn) False。這個參數(shù)很重要,縱向合并多個文件時,默認(rèn)為原來的索引,這樣勢必導(dǎo)致會有重復(fù)的索引值,如果想要一個全新的索引,就設(shè)置這個參數(shù)為True
在沒有設(shè)置這個參數(shù)的時候可以看到結(jié)果中的索引均為各自原先的索引,下面看看設(shè)置后的:
rs = pd.concat([one,two],ignore_index=True)結(jié)果:
keys︰ 序列,默認(rèn)為無。構(gòu)建分層索引使用通過的鍵作為最外面的級別。如果多個級別獲得通過,應(yīng)包含元組。
如果你寫成下面這種方式,keys的結(jié)果會被ignore覆蓋掉
rs = pd.concat([one,two],ignore_index=True,keys=["a 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的pandas concat_pandas-数据合并-concat(最全参数解释,含代码和实例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql快速批量入库_MySQL-批量
- 下一篇: java数据类型_JAVA基础篇(数据类