小編寫這篇文章的主要目的,主要是給大家做個詳細的解答,詳細的解答關于python DataFrame相關方面的知識,希望可以為各位讀者帶來更多的幫助。
python DataFrame的合并方法
Python的Pandas針對DataFrame,Series提供了多個合并函數,通過參數的調整可以輕松實現DatafFrame的合并。
首先,定義3個DataFrame df1,df2,df3,進行concat、merge、append函數的實驗。
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函數
pandas中concat函數的完整表達,包含多個參數,常用的有axis,join,ignore_index.
concat函數的第一個參數為objs,一般為一個list列表,包含要合并兩個或多個DataFrame,多個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表示合并方向,默認axis=0,兩個DataFrame按照索引方向縱向合并,axis=1則會按照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表示合并方式,默認join=‘outer’,另外的取值為’inner’,只合并相同的部分,axis=0時合并結果為相同列名的數據,axis=1時為具有相同索引的數據
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表示索引的合并方式,默認為False,會保留原df的索引,如果設置ignore_index=True,合并后的df會重置索引。
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函數
merge函數是pandas提供的一種數據庫式的合并方法。
on可以指定合并的列、索引,how則是與數據庫join函數相似,取值為left,right,outer,inner.left,right分別對應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函數可以通過pandas.merge(df1,df2)、df1.merge(df2)兩種形式來實現兩個DataFrame的合并,df1.merge(df2)是默認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函數
append函數是pandas針對DataFrame、Series等數據結構合并提供的函數。
df1.append(self,other,ignore_index=False,verify_integrity=False)
df1.append(df2)與pd.concat([df1,df2],ignore_index=False)具有相同的合并結果
df1.append(df2) a b c 0 1 2 3 1 2 3 4 0 2 3 4 1 3 4 5
把兩個dataframe合并成一個
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)
上文就為大家介紹完畢了,希望能給大家帶來一定的幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127776.html
摘要:一基礎運算二通過上一節的學習,我們可以了解到一部分矩陣中元素的計算和查找操作。相應的,在矩陣的個元素中,最小值即,對應索引,最大值為,對應索引為。確認是否與相同。要使用,首先需要了解他主要兩個數據結構和。 這一節繼續學習Numpy和Pandas。 一、numpy基礎運算二 通過上一節的學習,我們可以了解到一部分矩陣中元素的計算和查找操作。然而在日常使用中,對應元素的索引也是非常重要的。...
摘要:數據規整化清理轉換合并重塑數據聚合與分組運算數據規整化清理轉換合并重塑合并數據集可根據一個或多個鍵將不同中的行鏈接起來。函數根據樣本分位數對數據進行面元劃分。字典或,給出待分組軸上的值與分組名之間的對應關系。 本篇內容為整理《利用Python進行數據分析》,博主使用代碼為 Python3,部分內容和書本有出入。 在前幾篇中我們介紹了 NumPy、pandas、matplotlib 三個...
摘要:在這些情況下,了解如何從標準列表或字典創建會很有幫助。大多數人會注意到列的順序看起來不對。這個問題出現的原因是標準的字典不保留其鍵的順序。列表從創建的另一個選擇是將數據包含在列表結構中。 介紹 每當我使用pandas進行分析時,我的第一個目標是使用眾多可用選項中的一個將數據導入Pandas的DataFrame 。對于絕大多數情況下,我使用的 read_excel , read_csv ...
摘要:查看數據的基本統計信息。用處是用于數據讀寫處理更改提取等一系列操作的包,可以說,所有能實現的功能,都可以通過代碼輕松實現,因此,對于學習非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出無法窮盡可以簡單的實現。 放在前面的話? ? ????? ? ? ?? ????????這學期刻意少...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02