2015-06-26 266 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 
>>>