提问人:Arseny Yershov 提问时间:8/17/2023 更新时间:8/17/2023 访问量:98
将 Excel 文件读入 pandas 数据帧时保留撇号
Keep apostrophes when reading Excel file into pandas dataframe
问:
将 Excel 文件读入 Pandas 数据帧,如下所示:
import pandas as pd
df = pd.read_excel(open('C:/somedir/somefile.xlsx','rb'), sheet_name=0)
print(df)
如果单元格中的值以 '(单引号、撇号)开头 - pandas 会省略它。例如,它将 '123 转换为 123。但我需要按原样得到它,'123。
我意识到 Excel 将单引号视为文本限定符。但是,也许有一些解决方法可以使 pandas 在单元格值的开头保留单引号?
尝试摆弄 dtype - 但仍然没有运气。
答:
0赞
Timeless
8/17/2023
#1
您可以尝试使用 xlwings :
#pip install xlwings
import xlwings as xw
with xw.App(visible=False) as app:
wb = xw.Book("file.xlsx")
df = (
wb
.sheets["Sheet1"].used_range
.options(pd.DataFrame, index=False, header=True)
.value
)
输出:
>>> print(df)
col1
0 123
1 123.00
>>> df.values.ravel().tolist()
# ['123', 123.0]
使用的输入 () :file.xlsx
评论
0赞
Arseny Yershov
8/17/2023
谢谢,兄弟!不完全是我在输出('123)中所期望的,但无论如何都是一个很好的解决方案。可悲的是,它需要 Excel 安装 - 我的最终代码需要在 Linux(在 k8s Docker 容器中)下运行,那里不会有任何 Excel。
评论
value
value