gpt4 book ai didi

python - 带有正则表达式定界符的 pandas read_table,因为负数没有中间空格

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:25 25 4
gpt4 key购买 nike

我正在尝试使用 read_table 函数将空格分隔的表格(下面的示例)读取到 pandas 数据框中。

1  0.00000E+00-7.52896E-04 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 1.00247E-01 0.00000E+00
9 2.57945E+00-9.98377E-04 0.00000E+00 1.80923E+02 0.00000E+00 0.00000E+00 1.08995E+03 0.00000E+00 0.00000E+00 1.00795E+01 1.00002E-01 0.00000E+00
18 2.37285E+00-2.20000E-01 0.00000E+00 1.81079E+02-5.53001E+00 0.00000E+00 1.30827E+03 2.01207E+03 0.00000E+00 9.87285E+00 8.64615E-01 0.00000E+00

然而,问题是负值出现时没有分隔符,例如

1.81079E+02-5.53001E+00

以下两个选项不会生成所需的输出:

t=pds.read_table(filepath, sep='\s+|\d\-\d', engine='python')

t=pds.read_table(filepath, sep='(\s+|\d\-\d)', engine='python')

非常感谢任何帮助!

最佳答案

您可以先在负值前添加空格

file_contents = re.sub(r'(\d)(-\d*\.)', r'\1 \2', file_contents)

匹配

  • (\d) - 第 1 组:一个数字
  • (-\d*\.) - 第 2 组:一个连字符,然后是 0+ 个数字,后跟一个句点。
  • \1\2 是占位符,它们引用替换模式中存储在第 1 组和第 2 组内存缓冲区中的值(因此,粘贴第 1 组和第 2 组的值回到结果字符串)。

参见 regex demo .

然后,您可以使用 r'\s+' 正则表达式作为 sep 值来读取表格。

关于python - 带有正则表达式定界符的 pandas read_table,因为负数没有中间空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50037319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com