您可以使用以下模塊在Python閱讀ODF(開放文檔格式)文檔:
使用ezodf,一個簡單的ODS-到數據幀轉換器可能如下所示:
import pandas as pd
import ezodf
doc = ezodf.opendoc('some_odf_spreadsheet.ods')
print("Spreadsheet contains %d sheet(s)." % len(doc.sheets))
for sheet in doc.sheets:
print("-"*40)
print(" Sheet name : '%s'" % sheet.name)
print("Size of Sheet : (rows=%d, cols=%d)" % (sheet.nrows(), sheet.ncols()))
# convert the first sheet to a pandas.DataFrame
sheet = doc.sheets[0]
df_dict = {}
for i, row in enumerate(sheet.rows()):
# row is a list of cells
# assume the header is on the first row
if i == 0:
# columns as lists in a dictionary
df_dict = {cell.value:[] for cell in row}
# create index for the column headers
col_index = {j:cell.value for j, cell in enumerate(row)}
continue
for j, cell in enumerate(row):
# use header instead of column index
df_dict[col_index[j]].append(cell.value)
# and convert to a DataFrame
df = pd.DataFrame(df_dict)
對pandas
問題跟蹤器https://github.com/pydata/pandas/issues/2311請求了ODF電子表格(* .ods文件)支持,但它仍未實現。
ezodf
被用於未完成的PR9070來實現熊貓的ODF支持。該PR現在已關閉(請閱讀PR進行技術討論),但它仍作爲fork中的實驗性功能提供。
由於讀入。如果有更直接的東西,會很好,但我想這是一種可能性。 – Lamps1829
沒有比僅包含原始數據的文件更直接的了。這些文件必須採用特定的文件格式。這裏有二進制格式(比如NetCDF或者HDF5)和ascii格式,比如CSV。不幸的是,CSV不是一個真正的標準。儘管如此,CSV在大多數情況下是非常簡單的。 –