私は次のデータフレームを持っています...
idx Group key value Time IsTrue
1 bicycle person yes 9:30 yes
2 bicycle name bob 9:30 yes
3 bicycle alive yes 9:30 yes
5 non-cycle person no 1:30 no
6 non-cycle name jack 1:30 no
そして、私はデータフレームから次の結果が欲しいです
idx Group Time IsTrue person name alive
1 bicycle 9:30 yes yes bob yes
2 non-cycle 1:30 no no jack NA
キー列が新しい列になり、値がそれらの新しい列の行になります。キー列と値列を除いて、他のすべての行は常に同じ値を持ちます。キーが変わるので、何かダイナミックなものを探します。
私の現在のソリューションは、パンダのgroupby&apply(Group列に基づく)を使用し、グループごとに新しいデータフレームを作成しますが、それは過剰に設計されているようです。これに対するより簡単な解決策はありますか?
編集:
出力を修正したとき。set_index
およびを使用して別のソリューションを追加しましたunstack
df.set_index(['Group', 'Time', 'IsTrue', 'key'])['value'].unstack().reset_index()
Out[503]:
key Group Time IsTrue alive name person
0 bicycle 9:30 yes yes bob yes
1 non-cycle 1:30 no NaN jack no
オリジナル:
希望する出力は混乱を招きます。それがあなたが望むものであるならば、この解決策を試してみましょう。そうでない場合は削除します
df.pivot_table(index=['Group', 'Time', 'IsTrue'], columns='key', values='value', aggfunc='first').reset_index()
Out[487]:
key Group Time IsTrue alive name person
0 bicycle 9:30 yes yes bob yes
1 non-cycle 1:30 no NaN jack no
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加