gpt4 book ai didi

python - Pandas - 比较时从字典中获取相应的值

转载 作者:行者123 更新时间:2023-12-01 01:11:04 24 4
gpt4 key购买 nike

我有一个像这样的字典(不是数据框),

Emp ID  dictvalue
1 True
2 False

我有一个像这样的数据框,

  Emp ID    ColA       ColB
1 A B
2 A A

我正在比较 ColA 和 ColB

temp_result_df[res_col_name] = (temp_result_df[primaryreportreqcolname] == temp_result_df[RequiredSecondaryReport_Col_Name])

我正在代码中寻找 or 逻辑,它将通过与 empid 映射来从字典中获取 dictvalue ( bool true 或 false)。如果在同一行代码中,方便我维护的话,对我来说会容易很多。

类似于,

temp_result_df[res_col_name] = (temp_result_df[primaryreportreqcolname] == temp_result_df[RequiredSecondaryReport_Col_Name]) | ??...dictvalue......??

此时我不想将 dict 作为新列添加到该 temp_result_df 中。将字典转换为数据帧并进行连接将是一个简单的解决方案。但是,我将不得不再次删除该列,并且接下来的操作将变得更加困惑,因为它出现在多个地方。

预期结果,

  Emp ID    ColA       ColB   result
1 A B True
2 A A True

在比较 ColA 和 ColB 时,Emp ID 1 返回 False,但在与来自数据帧的 dictvalue 进行 OR 逻辑时,它会变为 True。

最佳答案

使用map用按位OR链接:

d = {1:True, 2:False}

df['result'] = (df['ColA'] == df['ColB']) | df['Emp ID'].map(d)
print (df)
Emp ID ColA ColB result
0 1 A B True
1 2 A A True

详细信息:

print (df['ColA'] == df['ColB'])
0 False
1 True
dtype: bool

print (df['Emp ID'].map(d))
0 True
1 False
Name: Emp ID, dtype: bool

关于python - Pandas - 比较时从字典中获取相应的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54866957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com