我的数据栏中有3篇涉及医学专业,我试图做一个关于如果column1在column2上的isin,它是真正的.如果column2是第3列,则为真。所以这句话应该是真的。我也考虑到了空值,如果一切都匹配的话。将第一行或第一行之间的内容交换到和&要么给出大量的假阳性,要么看起来什么也做不了。第二行和第四行也应该是正确的。
Dataframe https://i.stack.imgur.com/IqqaZ.png在格式化之后如何处理。
dfMaster = pd.dataframe({'Specialty_M' : ['Telemetry', 'M/S; Clinic; ER', 'Healthcare', 'M/S; Telemetry', 'ICU', 'Clinic', 'ICU'], 'Specialty_AM': ['ICU', 'ER', 'HLTH', 'M/S', 'ICU', 'PEDS', 'ICU'], 'Specialty_BE' : ['ICU', 'ER', '','M/S', 'ICU', '', 'ICU']})
dfMaster['SPECIALTY Okay?'] = np.NaNcomparisonSpecialty999 = np.where(
(dfMaster['Specialty_BE'].isin(dfMaster['Specialty_AM']) & dfMaster['Specialty_AM'].isin(dfMaster['Specialty_M'])) |
((dfMaster['Specialty_M'].str.upper() == dfMaster['Specialty_BE'].str.upper()) &
(dfMaster['Specialty_M'].str.upper() == dfMaster['Specialty_AM'].str.upper())) |
(
(dfMaster['Specialty_M'] != dfMaster['Specialty_M']) &
(dfMaster['Specialty_AM'] != dfMaster['Specialty_AM']) &
(dfMaster['Specialty_BE'] != dfMaster['Specialty_BE']))
| ~Exists, 'Correct', 'Fix')
dfMaster['SPECIALTY Okay?'] = comparisonSpecialty999发布于 2021-11-29 18:05:42
尝试使用apply和in
dfMaster['SPECIALTY Okay?'] = (np.where(dfMaster.apply(lambda x: (x["Specialty_BE"] in x["Specialty_AM"]) and
(x["Specialty_AM"] in x["Specialty_M"]),
axis=1),
"Correct",
"Fix")
)
>>> dfMaster
Specialty_M Specialty_AM Specialty_BE SPECIALTY Okay?
0 Telemetry ICU ICU Fix
1 M/S; Clinic; ER ER ER Correct
2 Healthcare HLTH Fix
3 M/S; Telemetry M/S M/S Correct
4 ICU ICU ICU Correct
5 Clinic PEDS Fix
6 ICU ICU ICU Correcthttps://stackoverflow.com/questions/70159199
复制相似问题