小編寫這篇文章的主要目的,主要是給大家做個(gè)詳細(xì)的解答,詳細(xì)的解答關(guān)于python DataFrame相關(guān)方面的知識(shí),希望可以為各位讀者帶來更多的幫助。
python DataFrame的合并方法
Python的Pandas針對DataFrame,Series提供了多個(gè)合并函數(shù),通過參數(shù)的調(diào)整可以輕松實(shí)現(xiàn)DatafFrame的合并。
首先,定義3個(gè)DataFrame df1,df2,df3,進(jìn)行concat、merge、append函數(shù)的實(shí)驗(yàn)。
df1=pd.DataFrame([[1,2,3],[2,3,4]],columns=['a','b','c']) df2=pd.DataFrame([[2,3,4],[3,4,5]],columns=['a','b','c']) df3=pd.DataFrame([[1,2,3],[2,3,4]],columns=['a','b','d']) df1 a b c 0 1 2 3 1 2 3 4 df2 a b c 0 2 3 4 1 3 4 5 df3 a b d 0 1 2 3 1 2 3 4
#concat函數(shù)
pandas中concat函數(shù)的完整表達(dá),包含多個(gè)參數(shù),常用的有axis,join,ignore_index.
concat函數(shù)的第一個(gè)參數(shù)為objs,一般為一個(gè)list列表,包含要合并兩個(gè)或多個(gè)DataFrame,多個(gè)Series
pandas.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False, keys=None,levels=None,names=None,verify_integrity=False, copy=True)
1.axis表示合并方向,默認(rèn)axis=0,兩個(gè)DataFrame按照索引方向縱向合并,axis=1則會(huì)按照columns橫向合并。
pd.concat([df1,df2],axis=1) a b c a b c 0 1 2 3 2 3 4 1 2 3 4 3 4 5
2.join表示合并方式,默認(rèn)join=‘outer’,另外的取值為’inner’,只合并相同的部分,axis=0時(shí)合并結(jié)果為相同列名的數(shù)據(jù),axis=1時(shí)為具有相同索引的數(shù)據(jù)
pd.concat([df2,df3],axis=0,join='inner') a b 0 2 3 1 3 4 0 1 2 1 2 3 pd.concat([df2,df3],axis=1,join='inner') a b c a b d 0 2 3 4 1 2 3 1 3 4 5 2 3 4
3.ignore_index表示索引的合并方式,默認(rèn)為False,會(huì)保留原df的索引,如果設(shè)置ignore_index=True,合并后的df會(huì)重置索引。
pd.concat([df1,df2],ignore_index=True) a b c 0 1 2 3 1 2 3 4 2 2 3 4 3 3 4 5
#merge函數(shù)
merge函數(shù)是pandas提供的一種數(shù)據(jù)庫式的合并方法。
on可以指定合并的列、索引,how則是與數(shù)據(jù)庫join函數(shù)相似,取值為left,right,outer,inner.left,right分別對應(yīng)left outer join,right outer join.
pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None, left_index=False,right_index=False,sort=False, suffixes=('_x','_y'),copy=True,indicator=False, validate=None):
merge函數(shù)可以通過pandas.merge(df1,df2)、df1.merge(df2)兩種形式來實(shí)現(xiàn)兩個(gè)DataFrame的合并,df1.merge(df2)是默認(rèn)left=self的情況。
df_merge=df1.merge(df3,on=['a','b']) a b c d 0 1 2 3 3 1 2 3 4 4
#append函數(shù)
append函數(shù)是pandas針對DataFrame、Series等數(shù)據(jù)結(jié)構(gòu)合并提供的函數(shù)。
df1.append(self,other,ignore_index=False,verify_integrity=False)
df1.append(df2)與pd.concat([df1,df2],ignore_index=False)具有相同的合并結(jié)果
df1.append(df2) a b c 0 1 2 3 1 2 3 4 0 2 3 4 1 3 4 5
把兩個(gè)dataframe合并成一個(gè)
merage
result=pd.merge(對象1,對象2,on='key')
2.append
result=df1.append(df2) result=df1.append([df2,df3]) result=df1.append(df4,ignore_index=True)
3.join
result=left.join(right,on=['key1','key2'],how='inner')
4.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) frames=[df1,df2,df3] result=pd.concat(frames) result=pd.concat(frames,keys=['x','y','z']) result=pd.concat([df1,df4],ignore_index=True)
上文就為大家介紹完畢了,希望能給大家?guī)硪欢ǖ膸椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127776.html
摘要:一基礎(chǔ)運(yùn)算二通過上一節(jié)的學(xué)習(xí),我們可以了解到一部分矩陣中元素的計(jì)算和查找操作。相應(yīng)的,在矩陣的個(gè)元素中,最小值即,對應(yīng)索引,最大值為,對應(yīng)索引為。確認(rèn)是否與相同。要使用,首先需要了解他主要兩個(gè)數(shù)據(jù)結(jié)構(gòu)和。 這一節(jié)繼續(xù)學(xué)習(xí)Numpy和Pandas。 一、numpy基礎(chǔ)運(yùn)算二 通過上一節(jié)的學(xué)習(xí),我們可以了解到一部分矩陣中元素的計(jì)算和查找操作。然而在日常使用中,對應(yīng)元素的索引也是非常重要的。...
摘要:數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑數(shù)據(jù)聚合與分組運(yùn)算數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑合并數(shù)據(jù)集可根據(jù)一個(gè)或多個(gè)鍵將不同中的行鏈接起來。函數(shù)根據(jù)樣本分位數(shù)對數(shù)據(jù)進(jìn)行面元?jiǎng)澐?。字典或,給出待分組軸上的值與分組名之間的對應(yīng)關(guān)系。 本篇內(nèi)容為整理《利用Python進(jìn)行數(shù)據(jù)分析》,博主使用代碼為 Python3,部分內(nèi)容和書本有出入。 在前幾篇中我們介紹了 NumPy、pandas、matplotlib 三個(gè)...
摘要:在這些情況下,了解如何從標(biāo)準(zhǔn)列表或字典創(chuàng)建會(huì)很有幫助。大多數(shù)人會(huì)注意到列的順序看起來不對。這個(gè)問題出現(xiàn)的原因是標(biāo)準(zhǔn)的字典不保留其鍵的順序。列表從創(chuàng)建的另一個(gè)選擇是將數(shù)據(jù)包含在列表結(jié)構(gòu)中。 介紹 每當(dāng)我使用pandas進(jìn)行分析時(shí),我的第一個(gè)目標(biāo)是使用眾多可用選項(xiàng)中的一個(gè)將數(shù)據(jù)導(dǎo)入Pandas的DataFrame 。對于絕大多數(shù)情況下,我使用的 read_excel , read_csv ...
摘要:查看數(shù)據(jù)的基本統(tǒng)計(jì)信息。用處是用于數(shù)據(jù)讀寫處理更改提取等一系列操作的包,可以說,所有能實(shí)現(xiàn)的功能,都可以通過代碼輕松實(shí)現(xiàn),因此,對于學(xué)習(xí)非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出無法窮盡可以簡單的實(shí)現(xiàn)。 放在前面的話? ? ????? ? ? ?? ????????這學(xué)期刻意少...
閱讀 923·2023-01-14 11:38
閱讀 895·2023-01-14 11:04
閱讀 756·2023-01-14 10:48
閱讀 2055·2023-01-14 10:34
閱讀 961·2023-01-14 10:24
閱讀 840·2023-01-14 10:18
閱讀 510·2023-01-14 10:09
閱讀 588·2023-01-14 10:02