-1
私の元の質問hereが掲載されました。次のように私は、データフレームを持っている:パンダの変換DataFrameは空白の行を追加します
ID START END SEQ
1 11 12 1
1 14 15 3
1 13 14 2
2 10 14 1
3 11 15 1
3 16 17 2
私はこのデータフレームに変換したいと思った:
ID START_1 END_1 SEQ_1 START_2 END_2 SEQ_2 START_3 END_3 SEQ_3
1 11 12 1 13 14 2 14 15 3
2 10 14 1 NA NA NA NA NA NA
3 11 15 1 16 17 2 NA NA NA
Iは、ヘッダの後に追加の空白行を有するデータフレームを受信pivot_table
変換後:
test_2['SEQ1'] = test_2.SEQ
test_2 = test_2.pivot_table(index= ['ID','SEQ1']).unstack()
test_2 = test_2.sort_index(axis=1, level=1)
test_2.columns = ['_'.join((col[0], str(col[1]))) for col in test_2]
test_2
2試験2
これらの行を削除してすべてのヘッダーを整列させるにはどうすればよいですか?私はtest2[:2]
を使用して従来の方法で行を削除しようとしましたが、ブランク行は削除されませんでした。
EDIT:
これは、より現実的なデータセットの抜粋です:
ID INDEX START END SEQ NUM_PREV NUM_ACTUAL NUM_NEXT TIME PRE_TIME LOC_IND
079C 333334.0 2016-06-23 12:45:32 2016-06-23 12:51:05 1 1 23456 25456 29456 30 2 YES
079C 333334.0 2016-06-23 12:47:05 2016-06-23 12:51:05 2 2 29456 39458 39945 20 0 NO
「KeyError not in index」というエラーが表示されます。そしておそらく 'idmax = max(test_2 ['SEQ'])+ 1' – duckertito
があるはずです。あなたのデータとピボットコードをどのように再現したかを示す私の投稿を更新します(投稿したとおりに使用します)。おそらくあなたの実際のデータは異なります。 – Parfait
私の実際のデータセットにはもっと多くの列があります。 'ID START END SEQ TIME DATE ...'。何らかの理由で最初のメソッドに新しいデータフレームの列の一部が含まれていないということは、私が誤解していることです。なぜすべての列が含まれていないのですか? 2番目の方法はおそらく 'ID'が' 11A'のように非数値であるとは想定していません。 – duckertito