簡體   English   中英

從熊貓數據框中刪除“垃圾”列

[英]Dropping a "garbage" column from pandas dataframe

我正在盡我最大的努力從一個格式特別糟糕的文件中繪制一些數據(我無法更改文件的格式,所以我必須圍繞我遇到的問題進行構建)。 我正在嘗試從文件中導入數據,並刪除一些我不需要的垃圾數據,例如錯誤消息,但我很掙扎。

在這里,我有一個函數可以讓我打開我想要使用的文件,以及一些將其格式化為數據幀的解決方法:

headers = ['Date','Time','Pressure','Temperature','Bias','RefTemp', 'Garbage']
def plotDigitalFunction():
    infile=askopenfilename()

    df = pd.read_csv(infile,sep="\t",names=headers, skiprows=1, parse_dates=[['Date','Time']])
    df = df.drop('Garbage', axis=1)

我的文件頂部看起來像這樣:

Date    Time    Pressure    Temperature Bias    Error
06.02.12    13:42:19:549         -2689      895524     1842052        27.0  ERROR: T1B1

所以,這里我有 6 個標題和 7 列。 我跳過第一行,設置我自己的標題並組合日期和時間,所以我有 6 個(我需要同一列中的日期和時間戳)。

我曾嘗試在 jupyter notebook 中使用此代碼,並且它完美無缺。 我得到這樣的東西:

        Date_Time   Pressure    Temperature Bias    RefTemp
    0   06.02.12 13:42:19:549   -2689   895524  1842052 27.0
    1   06.02.12 13:42:20:546   -2689   895467  1841921 27.0
    2   06.02.12 13:42:21:544   -2689   895388  1841817 27.0
    3   06.02.12 13:42:22:543   -2691   895287  1841672 27.0

但是當我在 python 3.6.2 中運行相同的代碼時,似乎只是列標題被刪除,它下面的數據被移動並放置在它左側的列下。 這行不通,我正在努力弄清楚我做錯了什么。

我之前有一個解決方案來打開文件,然后創建一個臨時的 csv 文件,然后我從中讀取,該文件有效。 但是要運行的數據量相當大,因此處理時間要加倍。

我希望這解釋得足夠好,如果我需要詳細說明,請不要猶豫提出問題。

提前致謝!

編輯:我只是在控制台中嘗試了相同的代碼,使用硬編碼的文件名而不是使用帶有 tkinter 的 askopenfilename() 的“infile”。 效果很好。 問題可能是因為這個嗎?

可能與您使用的python版本有關。 檢查您在 jupyter 中使用的 Python 版本並使用相同的版本。

暫無
暫無

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

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