2 つのデータフレームがあるとします。
import pandas
....
....
test1 = pandas.DataFrame([1,2,3,4,5])
....
....
test2 = pandas.DataFrame([4,2,1,3,7])
....
試してみtest1.append(test2)
ましたが、R と同等ですrbind
。
cbind
Rの関数と同様に、データフレームの2つの列として2つを組み合わせるにはどうすればよいですか?
2 つのデータフレームがあるとします。
import pandas
....
....
test1 = pandas.DataFrame([1,2,3,4,5])
....
....
test2 = pandas.DataFrame([4,2,1,3,7])
....
試してみtest1.append(test2)
ましたが、R と同等ですrbind
。
cbind
Rの関数と同様に、データフレームの2つの列として2つを組み合わせるにはどうすればよいですか?
concat(axis = 1)
パンダとcbind()
Rには重要な違いがあります。
concat
index でマージ/整列を試みます。R データフレームにはインデックスの概念はありません。2 つの pandas データフレームのインデックスがずれている場合、結果は cbind とは異なります (行数が同じであっても)。インデックスが整列していることを確認するか、インデックスを削除/リセットする必要があります。
例:
import pandas as pd
test1 = pd.DataFrame([1,2,3,4,5])
test1.index = ['a','b','c','d','e']
test2 = pd.DataFrame([4,2,1,3,7])
test2.index = ['d','e','f','g','h']
pd.concat([test1, test2], axis=1)
0 0
a 1.0 NaN
b 2.0 NaN
c 3.0 NaN
d 4.0 4.0
e 5.0 2.0
f NaN 1.0
g NaN 3.0
h NaN 7.0
pd.concat([test1.reset_index(drop=True), test2.reset_index(drop=True)], axis=1)
0 1
0 1 4
1 2 2
2 3 1
3 4 3
4 5 7
pd.concat([test1.reset_index(), test2.reset_index(drop=True)], axis=1)
index 0 0
0 a 1 4
1 b 2 2
2 c 3 1
3 d 4 3
4 e 5 7