N個のデータフレームがあります。
df1:
time data
1.0 a1
2.0 b1
3.0 c1
df2:
time data
1.0 a2
2.0 b2
3.0 c2
df3:
time data
1.0 a3
2.0 b3
3.0 c3
それらすべてをidでマージしたいので、
time data1 data2 data3
1.0 a1 a2 a3
2.0 b1 b2 b3
3.0 c1 c2 c3
すべてのIDがすべてのデータフレームで同じであることを保証できます。
パンダでこれを行うにはどうすればよいですか?
1つのアイデアはconcat
、のリストに使用することです。DataFrame
必要なのはid
、各に対してインデックスを作成することだけDaatFrame
です。また、列名の重複を避けるためにkeys
パラメータが追加されていますがMultiIndex
、出力に作成されます。だからそれを平らにmap
するformat
ために追加されました:
dfs = [df1, df2, df3]
dfs = [x.set_index('id') for x in dfs]
df = pd.concat(dfs, axis=1, keys=range(1, len(dfs) + 1))
df.columns = df.columns.map('{0[1]}{0[0]}'.format)
df = df.reset_index()
print (df)
id data1 data2 data3
0 1 a1 a2 a3
1 2 b1 b2 b3
2 3 c1 c2 c3
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加