pandas#Merging,joining,Concatenating

you can use pandas to combine the DataFrames by a very simple way.


まず下記のコードで3つのDataFrameを作ります。

data1={
'A':'A0 A1 A2 A3'.split(),
'B':'B0 B1 B2 B3'.split(),
'C':'C0 C1 C2 C3'.split(),
'D':'D0 D1 D2 D3'.split(),
'index':[0,1,2,3]
}

data2={
'A':'A4 A5 A6 A7'.split(),
'B':'B4 B5 B6 B7'.split(),
'C':'C4 C5 C6 C7'.split(),
'D':'D4 D5 D6 D7'.split(),
'index':[4,5,6,7]
}

data3={
'A':'A8 A9 A10 A11'.split(),
'B':'B8 B9 B10 B11'.split(),
'C':'C8 C9 C10 C11'.split(),
'D':'D8 D9 D10 D11'.split(),
'index':[8,9,10,11]
}

df1=pd.DataFrame(data1,index=data1['index'])
df2=pd.DataFrame(data2,index=data2['index'])
df3=pd.DataFrame(data3,index=data3['index'])

DataFrameはこんな感じになりますね:

df1

A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3

df2

A B C D
4 A4 B4 C4 D4
5 A5 B5 C5 D5
6 A6 B6 C6 D6
7 A7 B7 C7 D7

df3

A B C D
8 A8 B8 C8 D8
9 A9 B9 C9 D9
10 A10 B10 C10 D10
11 A11 B11 C11 D11

Concatenation

Concatenation basically glues DataFrame, keep in mind that dimensions should be match the axis you are concatenating on. you can use pd.concat() and pass a list of DataFrame to run it.

まずDataFrameのリストを入れてみます。

pd.concat([df1,df2,df3],)

これは実際jupyterで出力されたTableです。

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

じゃ、もしaxis=1といParameterを入れたらどうになる?

pd.concat([df1,df2,df3],axis=1)

これは実際jupyterで出力されたTableです。

A B C D index A B C D index A B C D index
0 A0 B0 C0 D0 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 A1 B1 C1 D1 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 A2 B2 C2 D2 2.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 A3 B3 C3 D3 3.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN A4 B4 C4 D4 4.0 NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN A5 B5 C5 D5 5.0 NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN A6 B6 C6 D6 6.0 NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN A7 B7 C7 D7 7.0 NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN A8 B8 C8 D8 8.0
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN A9 B9 C9 D9 9.0
10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN A10 B10 C10 D10 10.0
11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN A11 B11 C11 D11 11.0


Merging

The merging function allows you to merge DataFrames using similar as SQL.

まず簡単なデータを作ってみます。

left=pd.DataFrame({
'key':'K0 K1 K2 K3'.split(),
'A':'A0 A1 A2 A3'.split(),
'B':'B0 B1 B2 B3'.split()
})
right=pd.DataFrame({
'key':'K0 K1 K2 K3'.split(),
'C':'C0 C1 C2 C3'.split(),
'D':'D0 D1 D2 D3'.split()
})

次はpd.merge()を使います。

pd.merge(left,right,on=’key’)

これは実際jupyterで出力されたTableです。

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

Joining

Joining is a convenient method for combining the columns of two potentially differently-indexed DataFrame into a single result DataFrame.

まず簡単なデータを作ってみます。

left=pd.DataFrame(index='K0 K1 K2'.split(),
data={
'A':'A0 A1 A2'.split(),
'B':'B0 B1 B2'.split()
})
right=pd.DataFrame(index='K0 K2 K3'.split(),
data={
'C':'C0 C1 C2'.split(),
'D':'C0 D1 D2'.split()
})

次はpd.join()を使ってみます。

left.join(right)

これは実際jupyterで出力されたTableです。

A B C D
K0 A0 B0 C0 C0
K1 A1 B1 NaN NaN
K2 A2 B2 C1 D1

それじゃねー

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする