首页 > 解决方案 > 重建没有空单元格的 DataFrame

问题描述

我正在尝试在没有空单元格的情况下在 python 中重建 DataFrame。我看起来像这样:在此处输入图像描述

我希望它看起来像这样: 在此处输入图像描述

我尝试过使用 fillna() 和 notnull() 但它们都删除了空行或空列。是否有重建此功能或仅删除空单元格的功能?

谢谢

标签: pythonpandasdataframenumpy

解决方案


我将在逐行迭代过程中执行此操作。每行只需将其内容“浮动”到尽可能左的位置,将所有空值推到右侧。为此,我编写了一个实用方法:

def float_left(row):
    vals = row.values.copy()
    floated = []
    for i in range(len(vals)):
        if not np.isnan(vals[i]):
            floated.append(vals[i])
    while len(floated) < len(vals):
        floated.append(np.nan)
    row = floated.copy()
    return row

现在我可以重复将此方法应用于表格的每一行,我使用pandas内置apply方法:

df = df.apply(float_left, axis=1)

这样做的结果应该是所有条目都按照您的意愿向左浮动。如果没有,请告诉我!


推荐阅读