Python 从数据帧中删除“垃圾”列

Python 从数据帧中删除“垃圾”列,python,pandas,csv,matplotlib,dataframe,Python,Pandas,Csv,Matplotlib,Dataframe,我正在尽我最大的努力绘制一些数据,这些数据来自一个格式特别糟糕的文件,我无法更改文件的格式,因此我必须围绕我遇到的问题进行构建。我试图从文件中导入数据,并删除一些我不需要的垃圾数据,例如错误消息,但我正在努力 这里我有一个函数,允许我打开要使用的文件,以及一些将其格式化为数据帧的变通方法: headers = ['Date','Time','Pressure','Temperature','Bias','RefTemp', 'Garbage'] def plotDigitalFunction()

我正在尽我最大的努力绘制一些数据,这些数据来自一个格式特别糟糕的文件,我无法更改文件的格式,因此我必须围绕我遇到的问题进行构建。我试图从文件中导入数据,并删除一些我不需要的垃圾数据,例如错误消息,但我正在努力

这里我有一个函数,允许我打开要使用的文件,以及一些将其格式化为数据帧的变通方法:

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
        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
这里有6个标题和7列。我跳过了第一行,设置了我自己的标题并合并了日期和时间,所以我在同一列中有6个我需要的日期和时间戳

我曾尝试在jupyter笔记本中使用这段代码,它工作得完美无缺。我得到这样的东西:

Date    Time    Pressure    Temperature Bias    Error
06.02.12    13:42:19:549         -2689      895524     1842052        27.0  ERROR: T1B1
        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
但当我在Python3.6.2中运行相同的代码时,似乎只删除了列标题,而下面的数据被移动并放置在列的左侧。这行不通,我正在努力找出我做错了什么

之前我有一个解决方案,打开这个文件,然后创建一个临时的csv文件,然后从中读取,这很有效。但是,要运行的数据量相当大,因此处理时间要加倍

我希望这是解释得足够好,不要犹豫,问问题,如果我需要详细说明

提前谢谢

编辑:
我只是在控制台中尝试了相同的代码,使用硬编码的文件名,而不是使用带有tkinter的askopenfilename的infle。效果很好。问题可能是因为这个吗?

可能是因为您使用的是python版本。检查您使用的jupyter的python版本,并使用相同的版本。

这是相同的版本,我安装了带有pip的jupyter。我只是仔细检查了一下:printplatform.python_版本3.6.2那么pandas和所有其他工具呢?所有工具都是相同的,如上所述,当在函数中硬编码文件名时,代码工作。当我使用tkinter打开文件时,由于某种原因,列内容会移动。你确定你的工作方向是相同的吗?是的,100%确定。所有这些问题都描述了一段工作正常的代码。实际问题只在一句简短的话中陈述。相反,请关注实际问题,找出为什么jupyter的输出与原始python不同。在这个问题上几乎没有什么信息,所以就目前的情况而言,我认为没有人能提供帮助。当我在函数中使用tkinters askopenfilename提取文件时,问题就出现了。如果我将文件硬编码到read_csv中,效果会很好。但我不确定我如何才能解决这个问题,因为我想通过点击按钮来更改文件,总结一下askopenfilename在jupyter中的使用,askopenfilename在python脚本中不起作用,硬代码文件名在两者中都起作用?!实际问题似乎越来越与问题的内容无关。不,对不起。我应该解释一下。脚本中的所有内容都正常工作,但列会按照问题中的说明进行移动。在脚本中,我使用askopenfilename将文件拉入变量infle,然后对其执行操作。但是如果我只是跳过脚本中的askopenfilename并使用硬编码文件,它就可以工作了。列不会移动,但我需要能够使用askopenfilename更改文件。您能暂时忘记您真正的输入文件吗。从这个角度出发,试着提出一个解决问题的方案。您可以尝试从头开始创建,或者使用divideandconquer方法。