【问题标题】:Remove NaN values from certain columns Pandas Series [duplicate]从熊猫系列的某些列中删除 NaN 值 [重复]
【发布时间】:2021-07-01 21:07:38
【问题描述】:

我有以下 DF:

AA   BB  CC 
1    1   1
NaN  3   NaN
4    4   6
NaN  NaN 3
         NaN
         NaN
     4

输出应该是:

AA   BB  CC 
1     1   1
4     3   6
      4   3
          4

我试过了:

df = df.dropna(subset=['AA', 'BB', 'CC'])
     AA      BB CC
0    2       3  1
2    5       5  6

这是我得到的输出。

还有什么我应该做的不同的事情吗?

【问题讨论】:

  • This 应该会有所帮助。
  • 也许你可以做df.apply(lambda x: pd.Series(x.dropna().values)).fillna('')
  • 。您可以在pandas 中通过:resultdf=df.ffill().apply(lambda x:x.drop_duplicates().reset_index().drop(columns='index').squeeze()) 进行此操作

标签: python-3.x pandas dataframe series


【解决方案1】:

你可以使用:

df.apply(lambda x: x.dropna().reset_index(drop = True))

    AA  BB  CC
0   1.0 1.0 1.0
1   4.0 3.0 6.0
2   NaN 4.0 3.0
3   NaN NaN 4.0 

【讨论】:

  • 非常感谢您在这里的输入,这会起作用,但我仍然会得到 NaN 值,是否有办法在缺少值且其他列较大时不让 Pandas 添加 NaN?我要做的就是处理没有任何 NULL 值的数据。这是我正在寻找的结果,我只需要删除剩余的 NaN 值。
  • @Aldo: 使用df.apply(lambda x: x.dropna().reset_index(drop = True)).fillna('') --> 只需添加fillna('')
猜你喜欢
  • 2013-12-12
  • 1970-01-01
  • 2017-06-26
  • 2022-07-13
  • 1970-01-01
  • 2019-12-14
  • 1970-01-01
  • 2019-11-13
  • 1970-01-01
相关资源
最近更新 更多