簡體   English   中英

從(.csv或.txt)文件Python中刪除各種字符

[英]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 如果它是由其他人產生的,則抱怨(!)。

你有沒有嘗試過:

string.strip(s[, chars])

http://docs.python.org/2/library/string.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM