我有一个像这样的数据框
>>df1 = pd.DataFrame({
'A': ['1', '2', '3', '4', '5'],
'B': ['1', '1', '1', '1', '1'],
'C': ['c', 'A1', NaN, 'c3', Nan],
'D': ['d0', 'B1', 'B2', Nan, 'B4'],
'E': ['A', Nan, 'S', Nan, 'S'],
'F': ['3', '4', '5', '6', '7'],
'G': ['2', '2', NaN, '2', '2']
})
>>df1
A B C D E F G
0 1 1 c d0 A 3 2
1 2 1 A1 B1 NaN 4 2
2 3 1 NaN B2 S 5 NaN
3 4 1 c3 NaN NaN 6 2
4 5 1 NaN B4 S 7 2
我想获得所有nan的坐标。即输出应该是:
[[1,"E"], [2,"C"] , [2,"G"] , [3,"D"] ,[3,"E"] , [4,"C"] ]
我查看的所有其他问题只需要列名而不是对。
有什么有效的方法可以解决这个问题吗? 谢谢
最佳答案
使用stack
通过缺失值过滤索引值:
s = df1.stack(dropna=False)
L = [list(x) for x in s.index[s.isna()]]
print (L)
[[1, 'E'], [2, 'C'], [2, 'G'], [3, 'D'], [3, 'E'], [4, 'C']]
关于Python 通过一对 nan 获取坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54905677/