取消堆叠时丢弃 NA

我有一个这样的数据框:


field             

date     source   colA colB

20180101 source1  1    Nan

         source2  Nan  2

20180102 source1  3    Nan

         source2  NaN  4


...

保证 colA 将始终拥有源 1 的数据,而永远不会拥有源 2 的数据。与 colB 类似,它将始终拥有源 2 的数据,但永远不会拥有源 1 的数据。


现在我想做一个 unstack 并重新排序,所以我可以有这样的东西:


source   source1   source2

field    colA      colB

date

20180101 1         2

20180102 3         4

...

但问题是,当我取消堆叠时,我得到了包含 source1 colB 和 source2, colA 的所有 NA 的列。我不想在 unstack 之后做 dropna,因为我觉得有机会丢失重要信息。有没有办法做我想做的事?


牧羊人nacy
浏览 141回答 1
1回答

慕田峪9158850

使用DataFrame.stack的系列去掉NaNs的Series.unstack对DataFrame与MultiIndex在列:df = df.stack().unstack([1,2])print (df)source   source1 source2            colA    colBdate                    20180101     1.0     2.020180102     3.0     4.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python