Bạn có thể đọc các tài liệu ODF (Open Document Format) trong Python sử dụng các module sau:
Sử dụng ezodf, một đơn giản ODS-to Bộ chuyển đổi -DataFrame có thể trông giống như sau:
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)
Hỗ trợ bảng tính ODF (* .ods) đã được yêu cầu trên trình theo dõi vấn đề pandas
: https://github.com/pydata/pandas/issues/2311 nhưng vẫn chưa được triển khai.
ezodf
được sử dụng trong số chưa hoàn thành PR9070 để triển khai hỗ trợ ODF trong gấu trúc. PR đó hiện đã bị đóng (đọc PR cho một cuộc thảo luận kỹ thuật), nhưng nó vẫn có sẵn như một tính năng thử nghiệm ở thispandas
ngã ba.
Cảm ơn. Sẽ tốt nếu có cái gì đó trực tiếp hơn, nhưng tôi đoán đó là một khả năng. – Lamps1829
Không có gì trực tiếp hơn tệp chỉ chứa dữ liệu thô. Các tệp như vậy phải ở định dạng tệp nhất định. Có các định dạng nhị phân cho định dạng này (chẳng hạn như NetCDF hoặc HDF5) và định dạng ascii, chẳng hạn như CSV. Thật không may, CSV không phải là một tiêu chuẩn thực sự. Tuy nhiên, CSV là khá thẳng về phía trước để đối phó với trong hầu hết các tình huống. –