如何根据 Pandas 中的空值条件左移

问题描述

我有一个

这样的数据框
df = pd.DataFrame({"A":[1,np.nan,5],"B":[np.nan,10,np.nan],"C":[2,3,np.nan]})
     A     B   C
0    1   NaN   5
1   NaN  10   NaN
2    2    3   NaN 

我想左移所有值以占据空值。期望输出

     A     B   C 
0    1     5  NaN
1   10   NaN  NaN
2    2    3   NaN 

我尝试使用一系列 df['A'].fillna(df['B'].fillna(df['C']) 来执行此操作,但在我的实际数据中,有 100 多列。有没有更好的方法来做到这一点?

解决方法

让我们做

out = df.T.apply(lambda x : sorted(x,key=pd.isnull)).T
Out[41]: 
      A    B   C
0   1.0  5.0 NaN
1  10.0  NaN NaN
2   2.0  3.0 NaN

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...