【问题标题】:Removing parentheses and comma删除括号和逗号
【发布时间】:2015-09-13 00:28:08
【问题描述】:

我正在将数据库中的数据导入 python 数据框。现在,我希望将数据用于进一步分析,但是,在使用之前我需要对数据进行一些清理。目前,所需列的格式如下 ('2275.1', '1950.4')。我需要的输出应该看起来像:2275.11950.4 专门。 有人可以帮忙吗

【问题讨论】:

  • 你试过str.replace()吗?
  • 我投票结束这个问题作为题外话,因为 SO 不是代码编写服务,请展示你的努力
  • 嗨 EdChum,我确实尝试了一些方法,但我无法解决。我尝试为我的方法找到解决方案,但因为我什么也没找到。因此,我发布了。

标签: python regex python-2.7


【解决方案1】:
import re
print re.findall(r"\b\d+(?:\.\d+)?\b",test_str)

你可以简单地做到这一点。

print map(float,re.findall(r"\b\d+(?:\.\d+)?\b",x))

如果你想要float 值。

【讨论】:

    【解决方案2】:

    尝试ast.literal_eval,它将其参数作为常量 Python 表达式求值:

    import ast
    
    data = ast.literal_eval("('2275.1', '1950.4')")
    # data is now the Python tuple ('2275.1', '1950.4')
    
    x, y = data
    # x is '2275.1' and y is '1950.4'
    

    【讨论】:

      【解决方案3】:

      我假设,您提供的字符串实际上是 python 的输出。因此它是一个元组,包含两个字符串,它们是数字。如果是这样并且您想替换',则必须将它们转换为数字格式,例如float

      a = ('2275.1', '1950.4')
      a = [float (aI) for aI in a] 
      print a
      [2275.1, 1950.4]
      

      【讨论】:

      • 感谢您的回复。原始输出是
      【解决方案4】:

      这是一种方法:

      import re
      x = "'('2275.1', '1950.4')'"
      y = re.findall(r'\d+\.\d', x)
      for i in y:
        print i
      

      输出:

      2275.1
      1950.4
      

      【讨论】:

        【解决方案5】:

        这里是非正则表达式方法:

        data = (('2275.1', '1950.4'))
        
        
        result = data[0]# 0 means the value in the first row
        result2 = data[1]# 1 means the next row after 0
        
        
        print result
        print result2
        

        输出:

        >>> 
        2275.1
        1950.4
        >>> 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多