例如
Arun,Mishra,108,23,34,45,56,Mumbai
o\p 我想要的是
Arun,Mishra,108.23,34,45,56,Mumbai
試圖用點替換逗號,但所有的分隔符都用逗號替換
試過text.replace(',','.')但用點替換所有逗號
uj5u.com熱心網友回復:
您可以將正則運算式用于這些型別的任務:
import re
old_str = 'Arun,Mishra,108,23,34,45,56,Mumbai'
new_str = re.sub(r'(\d )(,)(\d )', r'\1.\3', old_str, 1)
>>> 'Arun,Mishra,108.23,34,45,56,Mumbai'
搜索模式r'(\d )(,)(\d )'是在兩個數字之間找到一個逗號。有三個捕獲組,因此可以在替換中使用它們:r\1.\3(\1 和 \3 是第一組和第三組)。old_str 是字串,1 是告訴模式只替換第一次出現(因此保留 34、45)。
uj5u.com熱心網友回復:
展示如何在沒有額外模塊匯入的情況下完成此操作可能是有益的。
這個想法是在字串中搜索所有/任何逗號。識別逗號索引后,檢查兩邊的字符(檢查數字)。如果觀察到這種模式,請相應地修改字串
s = 'Arun,Mishra,108,23,34,45,56,Mumbai'
pos = 1
while (pos := s.find(',', pos, len(s)-1)) > 0:
if s[pos-1].isdigit() and s[pos 1].isdigit():
s = s[:pos] '.' s[pos 1:]
break
pos = 1
print(s)
輸出:
Arun,Mishra,108.23,34,45,56,Mumbai
uj5u.com熱心網友回復:
假設您有一個像單行示例一樣的純 CSV 檔案,我們可以假設有 8 列,并且您希望將第 3 列和第 4 列“合并”在一起。您可以使用正則運算式執行此操作 - 如下所示。在這里,我將 8 列顯式匹配為 8 組 - 將所有不是逗號的內容匹配為列值,然后再次用逗號分隔除第 3 列和第 4 列之外的所有列,我在其中放置了您需要的句點/點。
$ echo "Arun,Mishra,108,23,34,45,56,Mumbai" | sed -r "s/([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)/\1,\2,\3.\4,\5,\6,\7,\8/"
Arun,Mishra,108.23,34,45,56,Mumbai
此正則運算式適用于您的確切資料。使用通用正則運算式替換兩個后續數字集之間的任何逗號可能會在其他資料上產生錯誤匹配,但是我認為根據您擁有的確切列顯式匹配資料將是最安全的方法。
您可以使用上面的正則運算式并將其編碼到您的 python 代碼中,如下所示。
import re
inLine = 'Arun,Mishra,108,23,34,45,56,Mumbai'
outLine = re.sub(r'([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)'
, r'\1,\2,\3.\4,\5,\6,\7,\8', inLine, 0)
print(outLine)
正如 Tim Biegeleisen 在原始評論中指出的那樣,如果您可以訪問原始源資料,您最好在那里修復格式。當然,這并不總是可能的。
uj5u.com熱心網友回復:
首先使用 s.split() 拆分字串,然后在替換后再次加入字串后替換第二個元素中的 ','。
s= 'Arun,Mishra,108,23,34,45,56,Mumbai '
ls = s.split(',')
ls[2] = '.'.join([ls[2], ls[3]])
ls.pop(3)
s = ','.join(ls)
uj5u.com熱心網友回復:
如果點前后都有數字,它將所有逗號更改為點。
txt = "2459,12 is the best number. lets change the dots . with commas , 458,45."
commaindex = 0
while commaindex != -1:
commaindex = txt.find(",",commaindex 1)
if txt[commaindex-1].isnumeric() and txt[commaindex 1].isnumeric():
txt = txt[0:commaindex] "." txt[commaindex 1:len(txt) 1]
print(txt)
最好的問候, Devrim
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/533220.html
標籤:Pythonpython-3.xCSV数据分析蟒蛇重新
