切片数据帧时,删除NaN列

时间:2019-02-11 17:32:58

标签: python pandas dataframe

我的问题是,从数据帧上切下一行时如何删除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

我将需要遍历此行,该行可能仅包含许多列之一。是否有矢量或Python方法不使用NaN返回列?我试图避免遍历整个行或使用字典,这也需要迭代。

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

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

0 个答案:

没有答案