dataframe放在字典循环里面无效

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

回到顶部