首页 > 解决方案 > Python Panads,如何使用 read_excel 保留单元格值的空格?

问题描述

我有 Excel 表格,A其中包含开头包含空格的列中的单元格值(另请参见 pure 1):

Все населення.................
 Міське населення.............
 Сільське населення...........
  СІМФЕРОПОЛЬ(міськрада)......
   Міське населення...........
    м. СІМФЕРОПОЛЬ............

我用read_excel方法读取了表格的内容:

df = pd.read_excel(file11, sheet_name=sheet, skiprows=9, usecols="A,D:E,G:H", dtype={"А": "str"})

但是在读取过程中,它会去除单元格值,因此在生成的数据帧(图2)中缺少前导空格,即使我明确指出了 column 的数据类型A

我还尝试使用一个简单的转换器功能:

def savespaces(f):
    return f.__repr__()

df = pd.read_excel(
    file11, sheet_name=sheet, skiprows=9, usecols="A,D:E,G:H", converters={"А": savespaces})

但它也没有预期的效果——它只为每个以 1、2、3 或更多空格开头的单元格文本保留一个空格——无论原始 Excel 数据中的空格数如何(见图3)。

这些空间对我来说很重要,所以我会保留它们。

Excel 数据 结果数据框 在此处输入图像描述

更新:正如@dm2 在他的评论中提到的,“jupyter notebook 在打印整个 df 时不显示它们 [空格],但打印单个值时,空格显然存在”。通过这次更新,问题变得更加清晰:Jupyter notebook 使用 HTML 样式并相应地将多个空格显示为一个空格。所以问题有不同的背景,在这里有一个答案:

在 jupyter notebook 中保留额外的空格以显示 pandas 数据框

标签: pythonpandas

解决方案


推荐阅读