[英]Removing various characters from (.csv or .txt) file Python
我有一個.csv文件,看起來像:
['NAME' " 'RA_I1'" " 'DEC_I1'" " 'Mean_I1'" " 'Median_I1'" " 'Mode_I1'" ...]"
在此字符串中進行(我認為)95個條目的位置,整個文件的深度超過一千行。 我想刪除所有字符: [ ' "
,只用單個空格項( ' '
)分隔所有內容。
到目前為止,我已經嘗試過:
import pandas as pd
df1 = pd.read_table('slap.txt')
for char in df1:
if char in " '[":
df1.replace(char, '')
print df1
我只是在“測試”代碼以查看其是否可以執行我想要的功能,不是。 我想在整個文件上實現它,但是我不確定如何實現。
我已經檢查了這個舊帖子 ,但還不能完全滿足我的目的。 我也玩過鏈接文章 ,唯一的問題似乎是所有條目都間隔了兩次,而不是一次。
看起來您應該可以在read_csv
的sep參數中使用一個(不是特別漂亮的)正則表達式來抓取一些東西:
In [11]: pd.read_csv(file_name, sep='\[\'|\'\"\]|[ \'\"]*', header=None)
Out[11]:
0 1 2 3 4 5 6 7
0 NaN NAME RA_I1 DEC_I1 Mean_I1 Median_I1 Mode_I1 NaN
您可以使用正則表達式直到真正滿足您的需求。
為了解釋這一點:
sep = ('\[\' # each line startswith [' (the | means or)
'|\'\"\]' # endswith '"] (at least the one I had)
'|[ \'\"]+') # this is the actual delimiter, the + means at least one, so it's a string of ", ' and space in any order.
您可以看到此駭客在任一端都留下了NaN列。 這很糟糕的主要原因是因為您的“ csv”不一致,我當然會建議清理它,當然,一種方法是先使用pandas然后再使用to_csv
。 如果它是由其他人產生的,則抱怨(!)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.