【问题标题】:Replace NaN values and shift numeric entries to NaN places替换 NaN 值并将数字条目移动到 NaN 位置
【发布时间】:2020-04-22 01:26:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: pandas dataframe nan


    【解决方案1】:

    这是否符合您的示例?

    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) 
    

    【讨论】:

    • 虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案没有用处。
    • 谢谢。但这正在将底行条目转移到上面的行。我只想在每行中保留 30 个条目。最终输出的维度应该是 56053, 30。如果可能,请分享。
    猜你喜欢
    • 2021-02-27
    • 2020-11-29
    • 1970-01-01
    • 2016-02-03
    • 2012-06-13
    • 2019-09-27
    • 2018-11-29
    • 2019-09-29
    • 2020-05-02
    相关资源
    最近更新 更多