python progrom在行中查找空值并返回列名

时间:2018-10-12 11:37:38

标签: python-3.x pandas

我想根据现有列null_columnsNaNA值的位置来创建新列F

A   B    C    D    E   F    null columns
0   1   NaN   3    5   4       ['C']
0  NaN  NaN  NaN   6   4   ['B','C','D']
2   3    5    4   NaN  5       ['E'] 

1 个答案:

答案 0 :(得分:0)

您应该编辑您的问题,以便所有人都可以清楚地看到,例如您使用了什么格式,尝试获得什么输出,等等。

实际上,这是一个有趣的问题。我假设您以熊猫的数据框格式获取了上述数据。添加更多与您的问题相关的标签也很重要。

无论如何,我找不到比下面的代码更有效的方法。希望它对您有帮助:

nul_index = []
for i in df:
    nul_index.append(df[df[i].isnull()].index.tolist())

这将为您提供列值空值的行索引列表。对于上述情况:[[],[1],[0,1],[1],[2],[]]

从该列表中,我们希望像[['C'],['B','C','D'],['E']]这样将其分配到我们的新列中。

new_col = []
for i in range(len(df)):
    new_col.append([df.columns[x] for x in range(len(nul_index)) if i in nul_index[x]])
df['null_column'] = new_col