Pandas に組み込みのソリューションが得られない興味深い質問があります。
次のようなデータがあります。
A B C D E F
1 null null Red null 12
1 89 76 Red null null
1 null null null null 12
私は次のような出力を得ようとしています:
1 89 76 Red null 12
これらのデータは、さまざまなタイミングで送信されるメッセージです。多くのメッセージは、1 つのトランザクションに属します。
したがって、A がトランザクションの識別子であるとします。同じ識別子を持つメッセージには、列 B の値を持つものもあれば、列 C の値を持つものもあります。
したがって、一意の識別子でグループ化し、各列の null 以外の値を取得したいと考えています。
したがって、これはグループ化してから集計するタスクです。しかし、カウントなどとは異なり、実際には新しい行を作成しています。
私はパンダでそうする方法を見つけていません。どんな助けでも大歓迎です、ありがとう!
例:>
A B C D
1 null null 100
1 90 null null
2 null 1000 999
1 80
2 1000 null 799
df.groupby('A').first()
B C D
A
1 null null 100
2 null 1000 999
ただし、必要な出力は次のとおりです。
B C D
A
1 90 80 100
2 1000 1000 999