【问题标题】:Python not replacing value as \\ being mapped with \Python 没有将值替换为 \\ 被映射为 \
【发布时间】:2021-08-06 10:06:38
【问题描述】:

关于如何在 \.

中处理 python 读取的任何建议

例如,我有一个维护的 excel 文档,其中包含一列值,例如。

A B C \D E

我在 excel 中遇到的一个问题是它将 \D 读取为 '\D,这在使用 Python 时似乎会导致问题。

我正在将这些读入 df 并创建一个列表:

df1 = pd.read_excel('myfile.xlsx', sheetname='Data')
mylist = df1['Data'].tolist()

mylist
['A', 'B', 'C', '\\D', 'E']

当我只想要 '\D' 时,如何停止读取 '\D'。

目的是然后在另一个数据框中找到与列表匹配的任何值并将它们替换为''。 \D 的任何实例都不会被替换,因为 \D 正在与 \D 映射。这才是真正的关键。

谢谢!

【问题讨论】:

  • '\\D'escaped 的代表\D。如果你打印字符串,一切都会好起来的,但不是包含字符串的列表,因为这给出了技术表示。
  • 在您的代码中,您没有使用print 命令查看数据。 \\D 是 python 内部存储的方式。在您的 python 终端中尝试print(mylist[-2])mylist[-2]。这里 python 使用额外的 \ 来告诉自己有 \ 字符,因为简单的 \ 是 python 中的一个特殊字符,如 \n、\t

标签: python excel replace backslash


【解决方案1】:

'\\D' 是字符串'\D' 表示将\ 字符与转义序列区分开来的方式。您可以验证您是否拥有正确的数据,例如:

>>> print(', '.join(str(s) for s in mylist))
'A, B, C, \D, E'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2013-05-30
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多