我是Python新手,希望對如何解決此問題提供一些幫助。以下是我正在嘗試執行的操作:讀取CSV並根據關鍵字列表替換一列
- 讀取具有事務列表的CSV文件。每行有6列。
對於每一行,將
DESCRIPTION
列與關鍵字列表進行比較,以查看任何單詞是否與關鍵字列表中的單詞匹配。
|Col0 | Col1 | Col2 | Col3 "DESCRIPTION" | Col4 | Col5 "CATEGORY"|
如果任何字從關鍵字列表匹配的東西,更換
CATEGORY
柱與對應於特定的關鍵字列表(例如:"Groceries"
)的新條目。- 繼續遍歷每行,將其與幾個關鍵字列表進行比較。如果匹配,則將每行中的第5列(
CATEGORY
)替換爲相應的值。 - 保存到新的CSV文件。
這是我到目前爲止有:
import csv
grocery_keyword = ['GIANT', 'SAFEWAY', 'KROGER']
with open('Trans.csv') as csvFile:
reader = csv.reader(csvFile, delimiter=",")
my_list = list(reader)
for row in my_list:
for index, item in enumerate(row):
if any grocery_keyword in row:
row[index] = item.replace("", "Grocery")
newCSVFile = 'newCSVFile.csv'
with open(newCSVFile, "w") as output:
writer = csv.writer(output, delimiter=",", quotechar='"',
quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
writer.writerows(my_list)
csvFile.close()
是一個列表在這裏使用了正確的事情?我應該如何對列和關鍵字列表進行比較?
找到了,謝謝! – elboc
如果說明類別與多個關鍵字匹配,您會在CATEGORY中看到什麼? – scagnetti
好問題,我還沒有想過這麼遠。我計劃的名單有互斥關鍵字。對於其他與關鍵字不匹配的行,我將不得不手動對它們進行排序。 – elboc