2017-11-01 15 views
2

私はPandasデータフレームに基づいてPandasピボットテーブルをフィルタリングしようとしています。例えば:データフレームに基づくピボットテーブル

condition    CAS  CAS  CAS  gene 
replicate    0  1  2 
tracking_id             
ENSMUSG00000000001.4 45.25 46.55 49.88 Gnai7 
ENSMUSG00000000028.14 1.51 1.63 1.62 Cdc4 

出力

condition    CAS  CAS  CAS 
replicate    0  1  2 
tracking_id             
ENSMUSG00000000001.4 45.25 46.55 49.88 
ENSMUSG00000000028.14 1.51 1.63 1.62 
ENSMUSG00000000031.15 16.99 17.54 18.69 

PT1

test_id     gene 
ENSMUSG00000000001.4 Gnai7 
ENSMUSG00000000003.15 Pbsa 
ENSMUSG00000000028.14 Cdc4 
DF1 merge方法は、キーとして test_idtracking_idを使用して、潜在的な解決策のように思えます。私も出力に geneの列も含める方法がわかりませんが。

ありがとうございました:)

答えて

1
pt1.merge(df1, how=left, left_on='condition', right_on ='test_id') 
+0

をおかげで、このテストで返す: 'KeyError例外:「condition''を。 pt1.columnsは 'MultiIndex(levels = [['CAS'、 'TET'、 'WT'、 'mean']、[0,1,2,3,4,5,1 ']] です。ラベル= [[0,0,0,1,1,1,1,1,1,2,2,2,3]、[0,1,2,0,1,2,3,4,5,6,7,8,9] –

+1

'' pt1.merge(df1、how = left、left_index = True、right_on = 'test_id') 'を試してみてください。' 0 '、' – Hound

+0

私たちは近づいてきていると思います。出力は、ピボットテーブルではなく、列ベースです。 '、 "(' CAS '、0)' '' '' '' '' '' '' '' '' '' '' ( 'TET'、1)、(( 'TET'、2)、(( 'TET'、3)、( 'TET'、4)、( 'TET'、 「(WT、0)」、「(WT '、1)」、「(WT'、2)」、「(mean)」、「 '」)、test_id、gene、significant '。ピボットテーブルを維持することは可能ですか? –

関連する問題