2017-07-18 19 views
1

内の行をマージする方法:パイソン/パンダ:2つのデータフレームのマージ後のデータフレーム

output = pd.merge(df1, df2, on='ID', how='outer') 

I持ってこのようなデータフレーム:

index x y z 
    0 2 NaN 3 
    0 NaN 3 3 
    1 2 NaN 4 
    1 NaN 3 4 
... 

どのように同じインデックスを持つ行をマージするには? 期待される出力:

index x y z 
    0 2 3 3 
    1 2 3 4 
+0

「z」の値が異なるとどうなりますか?それは今までに起こったことですか? – IanS

+0

あなたは「ID」をマージしていますが、データフレームのどこにもありません。我々はいくつかのデータが欠落しているように感じる。 – pshep123

+0

これはコードの例です。私はこの列を持っています – bartblons

答えて

3

おそらく、あなたはそれらのことを意識することができます。

In [418]: output.groupby('index', as_index=False).mean() 
Out[418]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 
1

我々は'index'によってグループのデータフレームをすることができ、その後...私たちはただ、もちろん、場合に応じなど.min().first()または最小との最初の値を取得することができます。 zの値が異なる場合、何を得たいですか?

In [28]: gr = df.groupby('index', as_index=False) 

In [29]: gr.first() 
Out[29]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 

In [30]: gr.max() 
Out[30]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 

In [31]: gr.min() 
Out[31]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 

In [32]: gr.mean() 
Out[32]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 
関連する問題