Python 忽略na值的多列交点

Python 忽略na值的多列交点,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个多列的数据框 data={'NAME':['A','B','C'], 'A':[[1,2,3],[np.nan],[3,4,5]], 'B':[[2,3,4],[3,4,5],[np.nan]], 'C':[[2,4],[3],[6,7]] } df=pd.DataFrame(data) df=df[['A','B','C']] 我可以使用 df.assign(D=df.apply( lambda x: list(set(x.A).intersecti

我有一个多列的数据框

    data={'NAME':['A','B','C'],
  'A':[[1,2,3],[np.nan],[3,4,5]],
  'B':[[2,3,4],[3,4,5],[np.nan]],
    'C':[[2,4],[3],[6,7]]  }
df=pd.DataFrame(data)
df=df[['A','B','C']]
我可以使用

df.assign(D=df.apply(
    lambda x: list(set(x.A).intersection(set(x.B)).intersection(set(x.C))),
    axis=1))
这将创建一个具有

 D
[2]
[]
[]
但我想忽略带na值的单元格,得到交点, 预计产量为

 D
[2]
[3]
[]
如何做到这一点?
谢谢你的帮助。

好的,我知道第一行的交集是2,但是第二行的交集怎么只有“3”

这里有一个方法

In [72]: df.apply(lambda x: list(set.intersection(*map(set,  
                                      (v for v in x if not all (np.isnan(v)))
                                  ))
                             ), axis=1)
Out[72]:
0    [2]
1    [3]
2     []
dtype: object

`数据={'NAME':['A','B','C'],'A':[[1,2,3],[np.nan],[3,4,5],'B':[[2,3,4],[3,4,5],[np.nan],'C':[[2,4],[3],[6,7]}df=pd.DataFrame(数据)df=df['A','B','C']