2015-06-26 268 views
-4

我正在将数据从数据库导入到python数据框中。现在,我希望将这些数据用于进一步分析,但是,我需要在使用之前对数据进行一些清理。目前,所需的列格式如 ('2275.1', '1950.4')。我需要的输出应该如下所示:2275.11950.4。 有人可以请帮忙删除括号和逗号

+1

你试过'str.replace()'吗? – TigerhawkT3

+0

我正在投票结束这个问题作为题外话,因为这不是一个代码写作服务,请显示你的努力 – EdChum

+0

嗨EdChum,我尝试了一些方法,但我无法解决。我试图找到解决方案,但因为我没有找到任何东西。因此,我发布了。 – user4943236

回答

0

这是做这件事:

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

输出:

2275.1 
1950.4 
0
import re 
print re.findall(r"\b\d+(?:\.\d+)?\b",test_str) 

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

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

如果你想float值。

0

尝试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' 
0

我认为,您所提供的字符串实际上是蟒蛇的输出。因此它是一个元组,包含两个字符串,它们是数字。如果是的话,你想更换',你必须将它们转换为数字格式,如float

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

谢谢你的回复。原始输出是 user4943236

0

这里一个非正则表达式的方法:

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 
>>>