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