为了账号安全,请及时绑定邮箱和手机立即绑定

df.loc - ValueError:缓冲区的维数错误(预期为 1,得到 0)

df.loc - ValueError:缓冲区的维数错误(预期为 1,得到 0)

江户川乱折腾 2022-06-22 15:24:13
我目前有以下代码 - 我正在尝试根据列在一个数据框中获取匹配的行Last Name。def rule(row):    name = row['Last Name']    return rules.loc[rules['Last Name'] == name]['Type']df['Type'] = df.apply(rule, axis=1)当我运行它时,我得到一个错误,因为方法== name中的rule- 我该如何修复它?ValueError: ('Buffer has wrong number of dimensions (expected 1, got 0)', 'occurred at index 0')这rules看起来像:  Last Name      Type0     Smith         A1     Doe           B和df:             Name First Name Last Name0      John Smith      John      Smith1        Jane Doe      Jane      Doe2        John Doe      John      Doe我希望决赛看起来像:             Name First Name Last Name  Type0      John Smith      John      Smith     A1        Jane Doe      Jane      Doe       B2        John Doe      John      Doe       B编辑:添加示例rules和df
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

df1 = pd.DataFrame({'First Name': ['John', 'Jane','John'], 'Last Name': ['Smith','Doe','Doe']})

print(df1)


rules = pd.DataFrame({'Last Name':['Smith', 'Doe'], 'Type': ['A','B']})

print(rules)

输出是:


    First Name Last Name

0       John     Smith 

1       Jane       Doe

2       John       Doe

   Last Name Type

0     Smith    A

1       Doe    B

df1.merge(规则)


输出是:


    First Name  Last Name   Type

0       John    Smith   A

1       Jane    Doe     B

2       John    Doe     B

这是你渴望的答案吗?


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号