簡體   English   中英

如何將 xls 中的所有字段作為字符串導入 Pandas dataframe?

[英]How to import all fields from xls as strings into a Pandas dataframe?

我正在嘗試將文件從 xlsx 導入 Python Pandas dataframe。我想防止字段/列被解釋為整數,從而丟失前導零或其他所需的異構格式。

因此,對於包含 100 列的 Excel 工作表,我將使用帶范圍 (99) 的字典理解來執行以下操作。

import pandas as pd
filename = 'C:\DemoFile.xlsx'

fields = {col: str for col in range(99)}

df = pd.read_excel(filename, sheetname=0, converters=fields)

這些導入文件確實始終具有不同數量的列,我希望以不同於一直手動更改范圍的方式來處理這個問題。

對於將 Excel 文件讀入 dataframe 並默認將所有字段視為字符串,是否有人有任何進一步的建議或替代方案?

非常感謝!

調用.read_excel()時使用 dtype dtype=str

import pandas as pd
filename = 'C:\DemoFile.xlsx'

df = pd.read_excel(filename, dtype=str)

嘗試這個:

xl = pd.ExcelFile(r'C:\DemoFile.xlsx')
ncols = xl.book.sheet_by_index(0).ncols
df = xl.parse(0, converters={i : str for i in range(ncols)})

更新:

In [261]: type(xl)
Out[261]: pandas.io.excel.ExcelFile

In [262]: type(xl.book)
Out[262]: xlrd.book.Book

通常的解決方案是:

  1. 讀取一行數據只是為了獲取列名和列數
  2. 自動創建字典,其中每列都有一個字符串類型
  3. 使用在步驟2中創建的詞典重新讀取全部數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM