【问题标题】:Python Dataframe get the NaN columns for each rowPython Dataframe 获取每行的 NaN 列
【发布时间】:2018-02-01 12:50:01
【问题描述】:

我有一个看起来像这样的 pandas 数据框:

      a     b      c
0   NaN   2.0  165.0
1   NaN   9.0    NaN
2   NaN   NaN    NaN
3  15.0  15.0    NaN
4   5.0   NaN   11.0

我想添加一个列,它可以为我提供缺失值摘要之类的信息。所以,我需要一个命令,它为我提供每行缺失值的列列表。像这样的:

      a     b      c    summary
0   NaN   2.0  165.0          a
1   NaN   9.0    NaN      a + c
2   NaN   NaN    NaN  a + b + c
3  15.0  15.0    NaN          c
4   5.0   NaN   11.0          b

【问题讨论】:

  • 第二行的 a+b 值怎么来的?第三行的 v 是什么?
  • 感谢您指出这一点
  • 向我们展示您到目前为止所尝试的内容,向我们展示您的代码

标签: python python-3.x pandas numpy dataframe


【解决方案1】:

这是一种方法。

import pandas as pd
import numpy as np

df = pd.DataFrame(
    [
        [np.nan, 2, 165], 
        [np.nan, 9, np.nan], 
        [np.nan, np.nan, np.nan],
        [15, 15, np.nan], 
        [5, np.nan, 11]
    ], 
    columns=['a', 'b', 'c']
)

df['Errors'] = df.apply(lambda row: ' + '.join(i for i in ['a', 'b', 'c'] if np.isnan(row[i])), axis=1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-05
    • 2020-09-23
    • 2018-09-15
    • 2019-03-24
    • 2015-07-10
    • 2015-02-14
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多