多くのN/A値を持つデータフレームが配信されることがあります。これらのケースではパンダのデータフレーム操作に問題がある
、reduntant行があります。すべてのX値について、ただ1つのY値がある。したがって、「コンテキスト」列と測定列名(M1、M2、.. Mn)を組み合わせることで、2つの「example1」行を1行に併合したい(画像に示すように)。
パンダのデータフレーム機能ではどうしたらいいですか?
ありがとうございました。
多くのN/A値を持つデータフレームが配信されることがあります。これらのケースではパンダのデータフレーム操作に問題がある
、reduntant行があります。すべてのX値について、ただ1つのY値がある。したがって、「コンテキスト」列と測定列名(M1、M2、.. Mn)を組み合わせることで、2つの「example1」行を1行に併合したい(画像に示すように)。
パンダのデータフレーム機能ではどうしたらいいですか?
ありがとうございました。
ジョイン使用することができます。 rsuffix
とlsuffix
のパラメータを使用するので、それらを使用する方が簡単ですが、接頭辞を使用する必要がある場合は手動で変更できます。
あなたDATAFRAME
df = pd.DataFrame({'X':['example1', 'example1'], 'context':['a', 'b'], 'M1':[0.1, np.nan], 'M2':[np.nan,0.2], 'M3':[np.nan, 0.3], 'Y':[0.5, 0.5]}, columns=['X', 'context', 'M1', 'M2', 'M3', 'Y'])
ソリューションを作成します
dfa = df[df['context'] == 'a'].set_index(['X', 'Y']).drop('context', axis=1)
dfb = df[df['context'] == 'b'].set_index(['X', 'Y']).drop('context', axis=1)
dfa.join(dfb, how='left', lsuffix='_a', rsuffix='_b').dropna(axis=1)