如何在使用 Pandas 导入 csv 文件期间有效地删除重叠的行?

我正在尝试使用如下所示的 Pandas 导入 csv 文件:


文件 1:


Date;Time;Value

2019-03-07;20:43;0.051

2019-03-07;20:44;0.048

...

2019-03-07;22:55;0.095

2019-03-07;22:56;0.098  

文件2:


Date;Time;Value

2019-03-07;22:55;0.095

2019-03-07;22:56;0.098    

...

2019-03-08;09:10;0.024

2019-03-08;09:11;0.022

目前我正在导入这样的数据:


data = pd.concat([pd.read_csv(open(file),sep=';') for file in files])

data.index = pd.to_datetime(data['Date'] + ' ' + data['Time'])   

显然,现在我在导入的数据框中有两次测量数据的重叠部分,绘制如下:

http://img2.mukewang.com/61bc4a6200010f2209450493.jpg

由于我需要评估大量 csv 文件,因此我对处理这种情况的最有效方法很感兴趣。

我想到了这两个选项:

  1. 在循环内导入文件,并且对于每个文件,仅使用file[i] > file[i-1].

  2. 像我现在一样导入文件并在附加步骤中删除重复项。

这些选项中哪个更有效,是否有我现在没有想到的更有效的选择?


幕布斯6054654
浏览 133回答 1
1回答

MMTTMM

至于删除重复项,pandas 支持:data = pd.concat([pd.read_csv(open(file),sep=';') for file in files])data.index = pd.to_datetime(data['Date'] + ' ' + data['Time']data = data[~data.index.duplicated()]另见文档:https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.duplicated.html关于做到这一点的“最佳”方法,这取决于数据量、其他限制条件等。如果没有更多上下文就无法回答,无论如何都可能是基于意见的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python