我正在尝试根据用户的选择获取电话号码#the dict that contains the data I needx={"contact": { "facility_message": "testing testing testing", "facilitydigits":101, "name": "", "urn": "tel:+1234567891011", "uuid": "60409852-a2089-43d5-bd4c-4b89a6191793", "selection_anc_pnc":"C" }}#extracting data from the dictfacility_number=str(x['contact']['facilitydigits'])group=(x['contact']['selection_anc_pnc']).upper()facility_message=(x['contact']['facility_message'])#checking user selection if group =='A': group="MIMBA"elif group =='B': group='MAMA' elif group=='C': group='MAMA' and "MIMBA"我的df看起来像这样phone group County PNC/ANC Facility Name Optedout Facility Code25470000040 MIMBA Orange PNC Centre FALSE 10125470000030 MAMA Orange PNC Centre FALSE 10125470000010 MIMBA Orange PNC Centre FALSE 10125470000020 MAMA Orange PNC Centre FALSE 10125470000050 MAMA Orange PNC Main Centre FALSE 112从我的df中提取电话号码phone_numbers =merged_df.loc[(merged_df['Facility Code'] ==facility_number) & (merged_df['group'] == group) & (merged_df['Opted out'] == optout)]['phone']print(phone_numbers)由于 if 语句,当前正在发生什么[25470000010,25470000040]期望的输出[25470000040,25470000030,25470000010,25470000020]
1 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
您错误地分配了 group 值group = 'MAMA' and "MIMBA"
,执行后使用该值将 value 分配"MIMBA"
给 group ,这是最后一个 truty 值,而不是您想要做的是分配 group 可以使用的值列表 using group = ['MAMA', "MIMBA"]
。然后,您可以使用Series.isin
方法过滤数据框中属于group
变量中存在的组的组。
利用:
if group =='A':
group=["MIMBA"]
elif group =='B':
group=['MAMA']
elif group=='C':
group=['MAMA', "MIMBA"]
m = (
merged_df['Facility Code'].astype(str).eq(facility_number)
& merged_df['group'].isin(group)
& merged_df['Optedout'].eq(optout)
)
phone_numbers = merged_df.loc[m, "phone"]
print(phone_numbers.values)
这打印:
[25470000040 25470000030 25470000010 25470000020] # assuming variable optout is False
添加回答
举报
0/150
提交
取消