dataframe放在字典循环里面无效
为啥我下面的字典循环语句跑出来的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 的函数
def find_key(x): for key, values in study_list_by_ta.items():
if x in values:
return key
return None
再将函数代入
signal_history_cal1["TA"] = signal_history_cal1['Study No.'].apply(find_key)
以上是 dataframe放在字典循环里面无效 的全部内容, 来源链接: utcz.com/a/31426.html