私のデータの一部は次のようになります。
date, name, value1, value2, value3, value4
1/1/2001,ABC,1,1,,
1/1/2001,ABC,,,2,
1/1/2001,ABC,,,,35
走れるところまでたどり着こうとしている
data.set_index(['date', 'name'])
しかし、データがそのままの状態では、(上記のように) もちろん重複があるので、これを行うことはできません (また、重複のあるインデックスは必要ありません。単純に drop_duplicates() を実行することはできません。これによりデータが失われます)。
特定の値が NaN であることに基づいて正常に収束できる場合は、同じ [date, name] 値を持つ行を単一の行に強制できるようにしたいと考えています (combine_first() の動作と同様)。たとえば、上記は最終的に
date, name, value1, value2, value3, value4
1/1/2001,ABC,1,1,2,35
2 つの値が異なり、一方が NaN でない場合、2 つの行は収束されません (これはおそらくエラーであり、追跡する必要があります)。
(上記の例を拡張すると、実際には任意の数の行が存在する可能性があり、任意の数の列が与えられた場合、1 つの行に収束できるはずです。)
これは、パンダを介して非常に解決できるはずの問題のように感じますが、エレガントな解決策を見つけるのに苦労しています。