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']