代码之家  ›  专栏  ›  技术社区  ›  run-out

切片一行数据帧时,删除NaN列

  •  0
  • run-out  · 技术社区  · 7 年前

    我的问题是,在从数据帧中切片一行时,如何删除NaN列?

    我正在一次一行分割数据帧。例如,数据帧是:

    df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                       'B': 'one one two three two two one three'.split(),
                       'C': np.arange(8), 'D': np.arange(8) * 2})
    

    我要将一个值更改为NaN以进行演示:

    df.iloc[2,3] = np.NaN
    

    结果df为:

        A   B      C    D
    0   foo one    0    0.0
    1   bar one    1    2.0
    2   foo two    2    NaN
    3   bar three  3    6.0
    4   foo two    4    8.0
    5   bar two    5    10.0
    6   foo one    6    12.0
    7   foo three  7    14.0
    

    作为更大操作的一部分,我将一次返回一行。这是一个示例:

    df.iloc[2,:]
    

    当我这样做时,我得到:

    A    foo
    B    two
    C      2
    D    NaN
    Name: 2, dtype: object
    

    我需要遍历这一行,它可能只包含许多列中的一列。有没有向量或pythonic方法不返回带有NaN的列?我试图避免迭代整行或使用字典,这也需要迭代。

    理想情况下,结果应如下所示:

    A    foo
    B    two
    C      2
    Name: 2, dtype: object
    
    0 回复  |  直到 7 年前