Привет, я совершенно новичок в Python, но надеюсь, что кто-то может показать мне веревки.
У меня есть справочная таблица csv, которая содержит более 1000 строк с уникальными значениями Find, пример справочной таблицы:
|Find |Replace |
------------------------------
|D2-D32-dog |Brown |
|CJ-E4-cat |Yellow |
|MG3-K454-bird |Red |
Мне нужно найти и заменить текст в другом CSV-файле. Пример столбца в другом файле, который мне нужно найти и заменить (более 2000 строк):
|Pets |
----------------------------------------
|D2-D32-dog |
|CJ-E4-cat, D2-D32-dog |
|MG3-K454-bird, D2-D32-dog, CJ-E4-cat |
|T2- M45 Pig |
|CJ-E4-cat, D2-D32-dog |
Мне нужно, чтобы Python нашел и заменил, возвращая следующее, и, если нет ссылки, возвращает оригиналзначение:
|Expected output |
---------------------
|Brown |
|Yellow, Brown |
|Red, Brown, Yellow |
|T2- M45 Pig |
|Yellow, Brown |
Заранее благодарю.
К вашему сведению - у меня нет опыта программирования, обычно я использую Excel, но мне сказали, что Python сможет этого добиться. Так что я попробовал добиться этого, надеясь достичь вышесказанного - но он возвращает неверную синтаксическую ошибку ...
import pandas as pd
dfRef1 = pd.read_csv(r'C:\Users\Downloads\Lookup.csv')
#File of Find and Replace Table
df= pd.read_csv(r'C:\Users\Downloads\Data.csv')
#File that contains text I want to replace
dfCol = df['Pets'].tolist()
#converting Pets column to list from Data.csv file
for x in dfCol:
Split = str(x).split(',')
#asking python to look at each element within row to find and replace
newlist=[]
for index,refRow in dfRef1.iteritems():
newRow = []
for i in Split:
if i == refRow['Find']:
newRow.append(refRow['Replace']
else
newRow.append(refRow['Find'])
newlist.append(newRow)
newlist
#if match found replace, else return original text
#When run, the code is Returning - SyntaxError: invalid syntax
#I've also noticed that the dfRef1 dtype: object
Я даже на правильном пути? Любой совет с благодарностью. Я понимаю концепцию Excel VLookup, однако, поскольку значение ячейки содержит несколько элементов поиска, которые мне нужно заменить в одной и той же ячейке, я не могу сделать это в Excel.
Еще раз спасибо.