python - 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)。
这些空间对我来说很重要,所以我会保留它们。
更新:正如@dm2 在他的评论中提到的,“jupyter notebook 在打印整个 df 时不显示它们 [空格],但打印单个值时,空格显然存在”。通过这次更新,问题变得更加清晰:Jupyter notebook 使用 HTML 样式并相应地将多个空格显示为一个空格。所以问题有不同的背景,在这里有一个答案:
解决方案
推荐阅读
- hacklang - 如何修复此 HH FIXME [4410]?
- html - 如何仅使用 css 为引导表单进行输入和标签内联
- c - main() 是如何调用的?在 __libc_start_main() 中调用 main()
- python - 更新数据湖中的 Azure 块 Blob,而不使用附加,同时拥有租约
- java - Java 11 Lambda - 检查每个对象,满足第一个条件时返回 true,否则返回 false
- c++ - C++:错误:获取临时地址 [-fpermissive]
- java - 实现 OpenBeans openbeans-1.0.jar 时出错
- flutter - 您如何确保列内容在一行列中保持在顶部?
- c++ - 尝试根据模板类型在模板类中重载虚函数
- html - (角度)单击一个按钮会突出显示另一个按钮,因为我正在更改数组中的值。为什么?