首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将OpenDocument电子表格转换为pandas DataFrame?

如何将OpenDocument电子表格转换为pandas DataFrame?
EN

Stack Overflow用户
提问于 2013-07-24 21:09:38
回答 9查看 48.9K关注 0票数 71

Python库pandas可以读取Excel电子表格,并使用pandas.read_excel(file)命令将其转换为pandas.DataFrame。在引擎盖下,它使用了xlrd库,该库用于does not support ods文件。

是否有用于ods文件的等价物pandas.read_excel?如果没有,我如何对Open Document格式的电子表格(ods文件)执行相同的操作?LibreOffice和OpenOffice都使用ODF。

EN

回答 9

Stack Overflow用户

发布于 2015-03-08 04:56:52

编辑:幸运的是,如果你可以更新到最新的Pandas版本,下面的答案现在已经过时了。如果您仍然希望使用Pandas版本的数据,并且仅在需要时才从ODS更新它,请继续阅读。

似乎答案是否定的!我会将读取ODS的工具描述为仍然参差不齐。如果您使用的是POSIX,那么在使用Pandas非常好的xlsx导入工具之前动态导出到xlsx的策略可能是一种选择:

代码语言:javascript
复制
unoconv -f xlsx -o tmp.xlsx myODSfile.ods 

总之,我的代码如下所示:

代码语言:javascript
复制
import pandas as pd
import os
if fileOlderThan('tmp.xlsx','myODSfile.ods'):
    os.system('unoconv -f xlsx -o tmp.xlsx myODSfile.ods ')
xl_file = pd.ExcelFile('tmp.xlsx')
dfs = {sheet_name: xl_file.parse(sheet_name) 
          for sheet_name in xl_file.sheet_names}
df=dfs['Sheet1']

这里,fileOlderThan()是一个函数(请参阅http://github.com/cpbl/cpblUtilities),如果tmp.xlsx不存在或比.ods文件旧,则该函数返回true。

票数 5
EN

Stack Overflow用户

发布于 2013-07-25 01:42:06

另一种选择:read-ods-with-odfpy。此模块接受OpenDocument电子表格作为输入,并返回一个列表,从中可以创建一个DataFrame。

票数 3
EN

Stack Overflow用户

发布于 2017-08-02 03:51:42

如果你只有几个.ods文件要读,我可以在openoffice中打开它,并将其另存为excel文件。如果您有很多文件,可以使用Linux中的unoconv command以编程方式将.ods文件转换为.xls (with bash)。

然后用pd.read_excel('filename.xls')就可以很容易地读入它

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17834995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档