【问题标题】:Drop NaN values but not the entire column删除 NaN 值但不删除整个列
【发布时间】:2020-03-11 02:23:05
【问题描述】:

鉴于此熊猫 df:

Col A.   Col B.   Col C.   
1         a        12
2         s        21
NaN       s        Nan
7         a        Nan

我想得到这个:

Col A.   Col B.   Col C.   
1         a        12
2         s        21
7         s        
          a

【问题讨论】:

  • 如何对齐索引?你只需要用空白字符串替换 NaN 吗?
  • 嗨。不,我不需要用空白字符串替换 NaN,我想删除那些 NaN 但不是包含 NaN 的整个列。如果可能的话..现在我正在使用空白替换,但做其他事情会很好。
  • 你能测试pd.DataFrame.from_dict(df.stack().groupby(level=1).agg(list).to_dict(),orient='index').T并告诉我
  • @anky_91 更好!现在 NaN 是 None 但它仍然对我的任务更好。谢谢!

标签: python-3.x pandas


【解决方案1】:

你可以试试:

out = (pd.DataFrame.from_dict(df.stack().groupby(level=1).agg(list)
       .to_dict(),orient='index').T)
print(out)

   Col A. Col B. Col C.
0      1      a     12
1      2      s     21
2      7      s   None
3   None      a   None

【讨论】:

    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2018-09-23
    • 1970-01-01
    • 2018-01-23
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多