我想根据dfB中是否存在作业标题(及其匹配状态),向dfA添加一列。
DFA =
Title State Income
Cashier WY 15000
Cashier WY 20000
Cashier WY 15000
Manager WY 25000
Cashier CO 15000
DFB =
Title State MostFreqIncome
Cashier WY 15000
英文:如果dfA中的标题/状态对与dfB中的任何标题/状态对匹配,请在dfA中创建一个新列,它将MostFreqIncome附加到该标题/状态对。
所需的dfA:
Title State Income MostFreqIncome
Cashier WY 15000 15000
Cashier WY 20000 15000
Cashier WY 15000 15000
Manager WY 25000 NA
Cashier CO 15000 NA
这是我到目前为止所拥有的:
is_in = dfA.Title.isin(dfB.Title) & dfA.State.isin(dfB.State)
这给了我False / True,但是如果它是True我想要dfA.MostFreqIncome = dfB.MostFreqIncome。如果它是假的我想要dfA.MostFreqIncome ='NA'
答案 0 :(得分:2)
您可以merge
两个DataFrame A和B来创建新的DataFrame:
>>> dfA.merge(dfB, on=['Title', 'State'], how='left')
Title State Income MostFreqIncome
0 Cashier WY 15000 15000.0
1 Cashier WY 20000 15000.0
2 Cashier WY 15000 15000.0
3 Manager WY 25000 NaN
4 Cashier CO 15000 NaN
在此处指定how='left'
表示我们在合并的DataFrame中仅仅是dfA
的标题/状态键。