替换 NaN 值并将数字条目移动到 NaN 位置

Replace NaN values and shift numeric entries to NaN places

我有一个奇怪的数据框,如下图所示。我想删除所有 NaN 条目并将数字条目移动到数据框的左侧。

每行有 1000 个条目,但其中 30 个是数字,其余是 NaN。

我遇到的困难是行之间没有同步。对于前 6 行,数字条目是从 969 到 999 列。对于接下来的 6 行,数字条目是从 968 到 998 列,这个序列持续 56053 行。

这符合您的示例吗?

df = pd.DataFrame([[1, 3, np.nan], [np.nan, 4, 2]])
dg = pd.concat([row.dropna().reset_index(drop = True).to_frame().T
                for idx, row in df.iterrows()
                ], 
               axis = 0,
               )

dh = df.apply(lambda row : row.dropna().reset_index(drop = True), axis = 1)