Suchen und ersetzen Sie Strings in Excel (.xlsx) mit Python
Ich versuche, eine Reihe von Zeichenfolgen in einem XLSX-Blatt (~ 70.000 Zeilen, 38 Spalten) zu ersetzen. Ich habe eine Liste der zu durchsuchenden und zu ersetzenden Zeichenfolgen in einer Datei, die wie folgt formatiert ist: -
bird produk - bird product
pig - pork
ayam - chicken
...
kuda - horse
Das zu suchende Wort befindet sich links und das Ersetzungswort rechts ("Vogelprodukt" suchen und durch "Vogelprodukt" ersetzen. Mein XLSX-Blatt sieht ungefähr so aus: -
name type of animal ID
ali pig 3483
abu kuda 3940
ahmad bird produk 0399
...
ahchong pig 2311
Ich suche nach der schnellsten Lösung dafür, da die Liste ungefähr 200 zu durchsuchende Wörter enthält und die XLSX-Datei ziemlich groß ist. Ich muss dafür Python verwenden, bin aber offen für andere schnellere Lösungen.
Bearbeiten: - Blatt Beispiel hinzugefügt
Edit2: - habe einige Python-Codes ausprobiert, um die Zellen zu lesen, brauchte ziemlich viel Zeit zum Lesen. Irgendwelche Hinweise?
from xlrd import open_workbook
wb = open_workbook('test.xlsx')
for s in wb.sheets():
print ('Sheet:',s.name)
for row in range(s.nrows):
values = []
for col in range(s.ncols):
print(s.cell(row,col).value)
Vielen Dank
Edit3: - Ich habe es endlich herausgefunden. Sowohl VBA-Modul- als auch Python-Codes funktionieren. Ich habe stattdessen auf .csv zurückgegriffen, um die Dinge zu vereinfachen. Vielen Dank! Hier ist meine Version des Python-Codes: -
import csv
###### our dictionary with our key:values. ######
reps = {
'JUALAN (PRODUK SHJ)' : 'SALE( PRODUCT)',
'PAMERAN' : 'EXHIBITION',
'PEMBIAKAN' : 'BREEDING',
'UNGGAS' : 'POULTRY'}
def replace_all(text, dic):
for i, j in reps.items():
text = text.replace(i, j)
return text
with open('test.csv','r') as f:
text=f.read()
text=replace_all(text,reps)
with open('file2.csv','w') as w:
w.write(text)