从datafram中删除“垃圾”列

2024-09-30 20:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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笔记本中使用这段代码,它工作得非常完美。我得到这样的结果:

        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”。效果不错。问题会是因为这个吗?你知道吗


Tags: 文件数据代码标题dfdatetime格式