数据文件1:
data_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 数据文件2
data2_20150801.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我想合并这两个.csv文件,以获得一个类似于以下内容的文件:
Time Header Header Header Header Header Header
2015-08-01 07:00 14.4 14.4 14.4 68 1000 1500因此,基本上,我需要从data2_复制行并在正确的时间点插入它们,在data_中--我用记事本++手动尝试了它们,但问题是,有时data2_中没有一分钟的条目,所以我需要检查丢失的TimeStep在哪里,并手动跳过这一点。
我用Python做了一些事情,但我仍然是个菜鸟,所以我缺乏如何开始处理这样一个问题的经验?
我使用的是mac,我发现cat命令将文件夹中的.csv文件组合成一个cvs文件->有办法逐行保存时间戳吗?
发布于 2015-09-22 13:18:40
您可以使用Python很容易地做到这一点,但这可能是一个过度的工程:
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=',')我没有机会测试这段代码,但是它应该做您想做的事情,您可能需要修改选项卡的逗号(取决于文件)等等。
发布于 2015-09-22 13:18:03
不是Python专家,我会使用两本字典,使用日期时间戳作为键,使用其他列的列表作为数据。
将一个文件加载到一个字典中,另一个文件加载到另一个字典中。然后,使用两个字典中相同的键合并这两个字典是非常简单的。
至于读取文件,您可以使用一个标准的 module。
发布于 2015-10-15 19:37:14
考虑到建议使用Pandas的解决方案,我将在index=False行中添加“to_csv”,并将其打开
d_three.to_csv('output.csv',sep=',', index=False)这将删除索引列。
https://stackoverflow.com/questions/32717819
复制相似问题