我正在尝试获取电话号码列表
这是代码
response='108'
group="MAMA"
optout='False'
phone_numbers = merged_df.loc[(merged_df['Facility Code'] ==facility_number) & (merged_df['group'] == group) & (merged_df['Optedout'] == optout)]['phone'].values
print(phone_numbers)
我的数据框看起来像这样
phone group County PNC/ANC Facility Name Optedout Facility Code
25470000000 MAMA Orange PNC Main Centre FALSE 112
25470000000 MAMA Orange PNC Main Centre FALSE 112
25470000010 MAMA Orange PNC Centre FALSE 108
25470000020 MAMA Orange PNC Centre FALSE 108
25470000000 MAMA Orange PNC Main Centre FALSE 112
这是我得到的错误
AttributeError: 'Series' object has no attribute 'value'
所需的输出
[25470000010,25470000020]
我似乎无法弄清楚我在做什么错。请帮助我解决此问题
答案 0 :(得分:2)
您需要删除.values
:
phone_numbers = merged_df.loc[(merged_df['Facility Code'] ==facility_number) & (merged_df['group'] == group) & (merged_df['Optedout'] == optout)]['phone']
答案 1 :(得分:1)
@Serge Ballesta 的评论是最可能的原因。
您分享的代码中有错别字。检查您是否调用了 value
而不是 values
。
以下代码按预期工作:
import pandas as pd
data = {'phone': [25470000000, 25470000000, 25470000010, 25470000020, 25470000000], 'group': ['MAMA', 'MAMA', 'MAMA', 'MAMA', 'MAMA'], 'County': ['Orange', 'Orange', 'Orange', 'Orange', 'Orange'], 'PNC/ANC': ['PNC', 'PNC', 'PNC', 'PNC', 'PNC'], 'Facility Name': ['Main Centre', 'Main Centre', 'Centre', 'Centre', 'Main Centre'], 'Optedout': ['FALSE', 'FALSE', 'FALSE', 'FALSE', 'FALSE'], 'Facility Code': [112, 112, 108, 108, 112]}
merged_df = pd.DataFrame.from_dict(data)
facility_number = 108
group = 'MAMA'
optout = 'FALSE'
phone_numbers = merged_df.loc[(merged_df['Facility Code'] ==facility_number) & (merged_df['group'] == group) & (merged_df['Optedout'] == optout)]['phone'].values
print(phone_numbers)
输出:
[25470000010 25470000020]
通过删除 .values
,输出是一个数据帧:
2 25470000010
3 25470000020
Name: phone, dtype: int64