Skip to main content
 首页 » 编程设计

python之比较列表的列

2025年05月04日14zdz8207

当 A 列值的列表元素为 NaN 时,如何比较 B 列列表值与 A 列列表值并保留 B 列列表值或将其更改为 NaN?

我试图搜索它,但只发现了类似的问题,然后用应用函数解决了这些问题,但我真的不知道它是如何工作的。

这是一个例子,它应该如何看待结束:

data = {"A":[[100, 333.3, np.NaN, np.NaN],[np.NaN, np.NaN,50, 25]], 
       "B":[["A1", "A2", "A3", "A4"], ["B1", "B2", "B3", "B4"]]} 
df = pd.DataFrame(data=data) 

输出应该是:

            A                     B 
 
0 [100, 333.3, nan, nan] [A1, A2, nan, nan]  
 
1     [nan, nan, 50, 25] [nan, nan, B3, B4] 

请您参考如下方法:

使用 for 循环。

df.B=[[s if t==t else np.nan for t,s in zip(x,y) ]for x , y in zip(df.A,df.B)] 
df 
Out[74]:  
                        A                   B 
0  [100, 333.3, nan, nan]  [A1, A2, nan, nan] 
1      [nan, nan, 50, 25]  [nan, nan, B3, B4]