我正在尝试在两个数据帧中查找字符串值,而我正在使用Pandas库。
第一个数据框 - df_transactions在“ErrList”列中有一个错误代码列表
第二个数据帧--df_action在一行'CODE'中有一个错误列表,在'ACTION'列中有相应的错误。
我正在尝试比较这些数据帧中的两个字符串,如下所示:
ActionLookup_COL = []
ActionLookup = []
for index, transactions in df_transactions.iterrows():
errorList = transactions['ErrList']
for index, errorCode in df_action.iterrows():
eCode = errorCode['Code']
eAction = errorCode['Action']
if eCode ==errorList:
ActionLookup.append(eAction)
ActionLookup_COL.append(ActionLookup)
df_results['ActionLookup'] = pd.Series(shipmentActionLookup_COL, index=df_results.index)
当我打印数据帧df_results ['ActionLookup']时,我没有得到与错误代码对应的动作代码。请告诉我如何比较这些数据框中的字符串
谢谢你的时间!
答案 0 :(得分:1)
你需要的IIUC merge
:
pd.merge(df_transactions, df_action, left_on='ErrList', right_on='Code')
样品:
df_transactions = pd.DataFrame({'ErrList':['a','af','e','d'],
'col':[4,5,6,8]})
print (df_transactions)
ErrList col
0 a 4
1 af 5
2 e 6
3 d 8
df_action = pd.DataFrame({'Code':['a','af','u','m'],
'Action':[1,2,3,4]})
print (df_action)
Action Code
0 1 a
1 2 af
2 3 u
3 4 m
df_results = pd.merge(df_transactions, df_action, left_on='ErrList', right_on='Code')
print (df_results)
ErrList col Action Code
0 a 4 1 a
1 af 5 2 af
print (df_results['Action'])
ErrList col Action Code
0 a 4 1 a
1 af 5 2 af