AttributeError:“系列”对象没有属性“值”

时间:2020-04-22 06:39:10

标签: python pandas dataframe

我正在尝试获取电话号码列表

这是代码

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]

我似乎无法弄清楚我在做什么错。请帮助我解决此问题

2 个答案:

答案 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