75

Python ライブラリpandas.DataFrameは、Excel スプレッドシートを読み取り、 withpandas.read_excel(file)コマンドに変換できます。内部では、 ods ファイルをサポートしないxlrdライブラリを使用します。

pandas.read_excelfor ods ファイルに相当するものはありますか? そうでない場合、Open Document Formatted スプレッドシート (ods ファイル) に対して同じことを行うにはどうすればよいですか? ODF は LibreOffice と OpenOffice で使用されます。

4

12 に答える 12

5

編集: 幸いなことに、最新の Pandas バージョンに更新できる場合、以下のこの回答は古くなっています。データの Pandas バージョンから作業し、必要な場合にのみ ODS から更新する場合は、読み進めてください。


答えはNoのようです!そして、ODS を読み取るためのツールはまだぼろぼろです。POSIX を使用している場合は、Pandas の xlsx 用の非常に優れたインポート ツールを使用する前に、オンザフライで xlsx にエクスポートするという戦略がオプションになる可能性があります。

unoconv -f xlsx -o tmp.xlsx myODSfile.ods 

全体として、私のコードは次のようになります。

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 を返します。

于 2015-03-07T20:56:52.177 に答える
3

別のオプション: read-ods-with-odfpy。このモジュールは、OpenDocument スプレッドシートを入力として受け取り、そこから DataFrame を作成できるリストを返します。

于 2013-07-24T17:42:06.367 に答える
3

pandas が .ods ファイルをサポートするようになりました。最初に odfpy モジュールをインストールする必要があります。その後、通常の .xls ファイルのように機能します。

conda install -c conda-forge odfpyr

それから

pd.read_excel('FILE_NAME.ods', engine='odf')
于 2021-01-09T17:39:22.557 に答える
3

読み取る .ods ファイルが数個しかない場合は、openoffice で開いて Excel ファイルとして保存します。多くのファイルがある場合は、Linux でunoconvコマンドを使用して、プログラムで .ods ファイルを .xls に変換できます ( bash を使用) 。

次に、それを読むのは本当に簡単ですpd.read_excel('filename.xls')

于 2017-08-01T19:51:42.430 に答える
0

Pandas での Excel ファイルの読み取り (xls と xlsx の両方) がサポートされています。read_excelコマンドを参照してください。OpenOffice を使用して、スプレッドシートを xlsx として保存できます。変換は、明らかに、convert-to コマンド ライン パラメータを使用して、コマンド ラインで自動的に行うこともできます。

xlsx からデータを読み取ると、最初に CSV に変換するときに発生する可能性のある問題 (日付形式、数値形式、Unicode) の一部を回避できます。

于 2015-01-09T16:37:28.520 に答える
-1

可能であれば、表計算アプリケーションから CSV として保存してから使用してpandas.read_csv()ください。「ods」スプレッドシート ファイルである IIRC は、実際にはかなりのフォーマット情報も含む XML ファイルです。したがって、表形式のデータの場合は、まずこの生データを中間ファイル (この場合は CSV) に抽出します。このファイルは、Python/pandas などの他のプログラムで解析できます。

于 2013-07-24T13:33:18.777 に答える