使用TimeStamps合并csv文件

时间:2015-09-22 13:11:15

标签: python macos csv

数据文件1:

data_20150801.csv

N20=18,N21=18 ,N22=18.

数据文件2

data2_20150801.csv

Time                Header  Header  Header  Header 
2015-08-01 07:00    14.4    14.4    14.4    68                              
2015-08-01 07:01    14.4    14.4    14.4    68  

我想合并这两个.csv文件,以获得一个看起来像的文件:

Time                Header   Header
2015-08-01 00:00    90       12312
2015-08-01 00:01    232      13213
......
2015-08-01 07:00    1000    1500
2015-08-01 07:01    2312    1245
2015-08-01 07:02    1232    1232
2015-08-01 07:03    1231    1232

所以基本上我需要从data2_复制Rows并在data_中的正确时间点插入它们 我用Notepad ++手动尝试了,但问题是,有时数据2中没有一分钟的条目,所以我需要检查丢失的TimeStep的位置并手动跳过这一点。

我在Python中做了一些事情,但我仍然是一个菜鸟,所以我缺乏如何开始解决这样的问题的经验?

我正在使用mac,我发现cat命令将文件夹中的.csv文件合并到一个cvs文件中 - >有没有办法逐行保存时间戳?

3 个答案:

答案 0 :(得分:1)

不是Python专家,我会使用两个词典,使用日期时间戳作为键,将其他列列表作为数据。

将一个文件加载到一个字典中,将另一个文件加载到另一个字典中。然后,使用两者中相同的键合并两个词典非常简单。

至于阅读文件,您可以使用标准cvs module

答案 1 :(得分:1)

你可以使用Python Pandas很容易地做到这一点,但它可能是一个过度工程:

import pandas as pd
d_one = from_csv('data.csv',sep=',',engine='python',header=0)
d_two = from_csv('data2.csv',sep=',',engine='python',header=0)
d_three = pd.merge(d_one, d_two, left_on='timestamp',right_on='timestamp')
d_three.to_csv('output.csv',sep=',')

我没有机会测试这段代码,但它应该做你想要的,你可能需要修改标签的逗号(取决于文件)等。

答案 2 :(得分:1)

考虑到提议使用Pandas的解决方案,我会在to_csv行添加“index = False”,将其转换为

d_three.to_csv('output.csv',sep=',', index=False)

这将删除索引列。