2016-11-23 75 views
1

2個dataframes時,我有以下代碼,以從剪貼板零件的要求列表,要求,並與召回部件的數據幀,分貝合併,導致數據幀資源與請求部件列表相關的召回。使用通配符合並在python

我想改變這個代碼能夠在兩個dataframes與添加到部件(例如的要求列表通配符合並:03.5將合併03.50103.524等在分貝)。

我試着用request['PARTS'] = request['PARTS'].str.upper() + "*"加了一個星號,但沒有奏效。 謝謝你的時間。

import pandas as pd 

#load recalled parts database 
db = pd.read_csv(r'resources/recall_part_db.csv', sep=';',converters={'PARTS':str}) 
db['PARTS'] = db['PARTS'].str.upper() 

#import search request from clipboard (excel) 
request = pd.read_clipboard(names=['PARTS'], sep='\r\n',converters={'PARTS':str}) 
request['PARTS'] = request['PARTS'].str.upper() 

res = pd.merge(db,request, on=['PARTS','PARTS']) 

回答

0

request['PARTS'] = request['PARTS'].str.upper() + "*"實際上應該工作。

試試這個方法:

request['PARTS'] = request['PARTS'].apply(lambda s: s.upper() + "*") 
+0

我嘗試這樣做,它確實增加了'',但它並不正確合併:例如:530.5 *不與被召回的部分數據框中530.521和530.522合併, db – hobbez

+0

你能否更詳細地解釋這個合併部分和你如何執行它?目前還不清楚 – MMF

+0

我編輯了問題中的代碼以刪除與問題無關的行。我正在嘗試將內部連接(pandas.merge)部件的數據框連接到召回部件的數據框。但是我想在請求數據幀的每一行的末尾與通配符合並。 – hobbez