为啥我下面的字典循环语句跑出来的TA 列都是None, 但是拆开来跑就可以得到想要的结果呢?
这段得到是TA column是None:
study_list_by_ta = {"CV_MED":["Axxxxxx","Byyyyyy"],"I&I" : ["cxxxxxxx"]}
for key, values in study_list_by_ta.items():
signal_history_cal1["TA"] = signal_history_cal1['Study No.'].apply(lambda x: key if x in values else None)
但是这段得到的就是想要的结果,比如CV_MED
aaa = study_list_by_ta["CV_MED"]
signal_history_cal1["TA"] = signal_history_cal1['Study No.'].apply(lambda x: "CV_MED" if x in aaa else None)
你的逻辑错了,你遍历的是字典 每循环一次都会使整个 dataframe 都更新一次,所以你得到的结果实际上是字典里最一个被遍历的数据。
我的写法是 先写一个查找 key 的函数
再将函数代入