【发布时间】:2017-02-12 04:29:00
【问题描述】:
我有一个 Excel 文件 (.xlsx),它有大约 800 行和 128 列,网格中的数据非常密集。有大约 9500 个单元格我正在尝试替换使用 Pandas 数据框的单元格值:
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() 需要 60 秒。有什么办法可以加快这个速度吗?这不是巨大的数据或任务,我期待熊猫移动得更快。仅供参考,我尝试对 CSV 中的相同文件进行相同的处理,但节省的时间很少(replace() 上大约 50 秒)
【问题讨论】:
-
from_filenames和to_filenames是lists的dicts? -
@jezrael 不仅仅是简单的字符串列表。单元格值
标签: python excel pandas numpy dataframe