【问题标题】:Drop NA while unstack取消堆叠时丢弃 NA
【发布时间】:2019-07-30 13:52:45
【问题描述】:

我有一个这样的数据框:

field             
date     source   colA colB
20180101 source1  1    Nan
         source2  Nan  2
20180102 source1  3    Nan
         source2  NaN  4

...

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

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

source   source1   source2
field    colA      colB
date
20180101 1         2
20180102 3         4
...

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

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    DataFrame.stack 用于系列并删除NaNs 和Series.unstack 用于DataFrameMultiIndex 在列中:

    df = df.stack().unstack([1,2])
    print (df)
    source   source1 source2
                colA    colB
    date                    
    20180101     1.0     2.0
    20180102     3.0     4.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2019-01-08
      • 2023-01-11
      • 2014-04-15
      • 1970-01-01
      • 2021-11-22
      相关资源
      最近更新 更多