Mam plik Excel (.xlsx) z około 800 wierszy i 128 kolumnami z dość gęstymi danymi w siatce. Istnieje około 9500 komórek, które staram się zastąpić wartości komórek z użyciem pandy ramkę danych:Pandy powolne na ramce danych zastępują
xlsx = pandas.ExcelFile(filename)
frame = xlsx.parse(xlsx.sheet_names[0])
media_frame = frame[media_headers] # just get the cols that need replacing
from_filenames = get_from_filenames() # returns ~9500 filenames to replace in DF
to_filenames = get_to_filenames()
media_frame = media_frame.replace(from_filenames, to_filenames)
frame.update(media_frame)
frame.to_excel(filename)
replace()
trwa 60 sekund. Jakikolwiek sposób przyspieszyć to? To nie są wielkie dane ani zadania, spodziewałem się, że pandy będą poruszać się znacznie szybciej. FYI Próbowałem robić tę samą obróbkę z tego samego pliku w formacie CSV, ale oszczędność czasu był minimalny (około 50 sekund na replace()
)
'from_filenames' oraz' to_filenames' to 'list'' dykts'? – jezrael
@jezrael nie tylko płaskie listy ciągów znaków. Wartości komórek – Neil