我目前有以下代碼 - 我正在嘗試根據(jù)列在一個數(shù)據(jù)框中獲取匹配的行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條經(jīng)驗 獲得超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(規(guī)則)
輸出是:
First Name Last Name Type
0 John Smith A
1 Jane Doe B
2 John Doe B
這是你渴望的答案嗎?
添加回答
舉報
0/150
提交
取消