日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python Pandas –合并,联接和串联

發(fā)布時(shí)間:2025/3/11 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Pandas –合并,联接和串联 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

There are three main ways to combine dataFrames i.e., merging, joining and concatenating. The following examples will illustrate merging, joining and concatenation.

組合dataFrames的主要方法有三種,即合并,聯(lián)接和串聯(lián) 。 以下示例將說(shuō)明合并,聯(lián)接和串聯(lián)。

Create three dataframes

創(chuàng)建三個(gè)數(shù)據(jù)框

import pandas as pddf1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3'],}, index=[0, 1, 2, 3])df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],'B': ['B4', 'B5', 'B6', 'B7'],'C': ['C4', 'C5', 'C6', 'C7'],'D': ['D4', 'D5', 'D6', 'D7'],}, index=[4, 5, 6, 7])df3 = pd.DataFrame({'A': ['A8', 'A9', 'A10', 'A11'],'B': ['B8', 'B9', 'B10', 'B11'],'C': ['C8', 'C9', 'C10', 'C11'],'D': ['D8', 'D9', 'D10', 'D11'],}, index=[8, 9, 10, 11])# printing print(df1) print(df2) print(df3)

Output

輸出量

A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3A B C D 4 A4 B4 C4 D4 5 A5 B5 C5 D5 6 A6 B6 C6 D6 7 A7 B7 C7 D7A B C D 8 A8 B8 C8 D8 9 A9 B9 C9 D9 10 A10 B10 C10 D10 11 A11 B11 C11 D11

級(jí)聯(lián) (Concatenation)

Concatenation glues/combines the dataFrames. Please note that the dimensions should match along the axis we are concatenating on.

串聯(lián)粘貼/合并dataFrames。 請(qǐng)注意,尺寸應(yīng)沿著我們串聯(lián)的軸匹配。

Use pd.concat and pass in a list of dataFrames to concatenate together.

使用pd.concat并傳入dataFrames列表以串聯(lián)在一起。

print(pd.concat([df1,df2,df3])) ''' Output:A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 5 A5 B5 C5 D5 6 A6 B6 C6 D6 7 A7 B7 C7 D7 8 A8 B8 C8 D8 9 A9 B9 C9 D9 10 A10 B10 C10 D10 11 A11 B11 C11 D11 ''' # specify axis=1, # if you want to join and merge along the concatenate print(pd.concat([df1,df2,df3], axis = 1))''' Output:A B C D A B C D A B C D 0 A0 B0 C0 D0 NaN NaN NaN NaN NaN NaN NaN NaN 1 A1 B1 C1 D1 NaN NaN NaN NaN NaN NaN NaN NaN 2 A2 B2 C2 D2 NaN NaN NaN NaN NaN NaN NaN NaN 3 A3 B3 C3 D3 NaN NaN NaN NaN NaN NaN NaN NaN 4 NaN NaN NaN NaN A4 B4 C4 D4 NaN NaN NaN NaN 5 NaN NaN NaN NaN A5 B5 C5 D5 NaN NaN NaN NaN 6 NaN NaN NaN NaN A6 B6 C6 D6 NaN NaN NaN NaN 7 NaN NaN NaN NaN A7 B7 C7 D7 NaN NaN NaN NaN 8 NaN NaN NaN NaN NaN NaN NaN NaN A8 B8 C8 D8 9 NaN NaN NaN NaN NaN NaN NaN NaN A9 B9 C9 D9 10 NaN NaN NaN NaN NaN NaN NaN NaN A10 B10 C10 D10 11 NaN NaN NaN NaN NaN NaN NaN NaN A11 B11 C11 D11 '''

In the above example, we see a bunch of missing values and that is because these data frames didn’t have values for all the indices we wanted to concatenate on. While working on concatenation and ensure that all the values are lined up correctly when joining on-axis.

在上面的示例中,我們看到了一堆丟失的值,這是因?yàn)檫@些數(shù)據(jù)框沒(méi)有要連接的所有索引的值。 在進(jìn)行串聯(lián)時(shí),請(qǐng)確保在同軸連接時(shí)所有值都正確對(duì)齊。

合并中 (Merging)

Let's create some more example dataFrames,

讓我們創(chuàng)建更多示例dataFrames,

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3'] }) right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3'] })# printing print(left) print(right)''' Output:key A B 0 K0 A0 B0 1 K1 A1 B1 2 K2 A2 B2 3 K3 A3 B3key C D 0 K0 C0 D0 1 K1 C1 D1 2 K2 C2 D2 3 K3 C3 D3 '''

The merge function allows merging the dataFrames using similar logic as merging SQL tables. For instance,

合并功能允許使用與合并SQL表類似的邏輯來(lái)合并dataFrame。 例如,

# default merge on 'inner' print(pd.merge(left,right,how='inner',on='key'))''' Output:key A B C D 0 K0 A0 B0 C0 D0 1 K1 A1 B1 C1 D1 2 K2 A2 B2 C2 D2 3 K3 A3 B3 C3 D3 '''

A little more complicated example dataFrames can be,

稍微復(fù)雜一點(diǎn)的示例dataFrames可以是,

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],'key2': ['K0', 'K1', 'K0', 'K1'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3'] }) right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],'key2': ['K0', 'K0', 'K0', 'K0'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3'] })# pass a single column 'key' or list of columns print(pd.merge(left, right, on=['key1', 'key2'])) '''key1 key2 A B C D 0 K0 K0 A0 B0 C0 D0 1 K1 K0 A2 B2 C1 D1 2 K1 K0 A2 B2 C2 D2 '''# merge outer (similar to outer join) print(pd.merge(left, right, how='outer', on=['key1', 'key2'])) '''key1 key2 A B C D 0 K0 K0 A0 B0 C0 D0 1 K0 K1 A1 B1 NaN NaN 2 K1 K0 A2 B2 C1 D1 3 K1 K0 A2 B2 C2 D2 4 K2 K1 A3 B3 NaN NaN 5 K2 K0 NaN NaN C3 D3 '''# merge right (similar to right join) print(pd.merge(left, right, how='right', on=['key1', 'key2'])) '''key1 key2 A B C D 0 K0 K0 A0 B0 C0 D0 1 K1 K0 A2 B2 C1 D1 2 K1 K0 A2 B2 C2 D2 3 K2 K0 NaN NaN C3 D3 '''# merge left (similar to left join) print(pd.merge(left, right, how='left', on=['key1', 'key2'])) '''key1 key2 A B C D 0 K0 K0 A0 B0 C0 D0 1 K0 K1 A1 B1 NaN NaN 2 K1 K0 A2 B2 C1 D1 3 K1 K0 A2 B2 C2 D2 4 K2 K1 A3 B3 NaN NaN '''

加盟 (Joining)

Joining is a convenient method for combining the columns of two potentially differently-indexed DataFrames into a single result DataFrame. Joining is very similar to merge except they are joining on the index instead of a column.

聯(lián)接是一種方便的方法,用于將兩個(gè)可能具有不同索引的DataFrame的列組合為單個(gè)結(jié)果DataFrame。 聯(lián)接與合并非常相似,只不過(guò)它們是在索引而不是列上聯(lián)接。

Create example dataFrames,

創(chuàng)建示例數(shù)據(jù)框,

left = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2']},index = ['K0', 'K1', 'K2'])right = pd.DataFrame({'C': ['C0', 'C2', 'C3'],'D': ['D0', 'D2', 'D3']},index = ['K0', 'K2', 'K3'])print(left.join(right)) '''A B C D K0 A0 B0 C0 D0 K1 A1 B1 NaN NaN K2 A2 B2 C2 D2 '''print(left.join(right, how='outer')) '''A B C D K0 A0 B0 C0 D0 K1 A1 B1 NaN NaN K2 A2 B2 C2 D2 K3 NaN NaN C3 D3 '''

翻譯自: https://www.includehelp.com/python/python-pandas-merging-joining-and-concatenating.aspx

總結(jié)

以上是生活随笔為你收集整理的Python Pandas –合并,联接和串联的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。