Python 将具有重叠的多个ohlc csv合并为一个具有重叠的排序csv文件
我正在尝试将多个OHLC csv文件合并到一个文件中。我在互联网上下载了一些数据,但索引部分重叠。数据可能如下所示:Python 将具有重叠的多个ohlc csv合并为一个具有重叠的排序csv文件,python,pandas,dataframe,join,merge,Python,Pandas,Dataframe,Join,Merge,我正在尝试将多个OHLC csv文件合并到一个文件中。我在互联网上下载了一些数据,但索引部分重叠。数据可能如下所示: <file1> o,h,l,c,v,t ... 364.4,364.4,364.4,364.4,155.0,2019-01-01 10:59:59 364.4,364.59,364.4,364.59,371.0,2019-01-01 11:00:00 364.59,364.59,364.59,364.59,305.0,2019-01-01 11:00:01 <
<file1>
o,h,l,c,v,t
...
364.4,364.4,364.4,364.4,155.0,2019-01-01 10:59:59
364.4,364.59,364.4,364.59,371.0,2019-01-01 11:00:00
364.59,364.59,364.59,364.59,305.0,2019-01-01 11:00:01
<file2>
o,h,l,c,v,t
364.4,364.59,364.4,364.59,1371.0,2019-01-01 11:00:00
364.59,364.59,364.59,364.59,305.0,2019-01-01 11:00:01
364.59,364.59,364.59,364.59,305.0,2019-01-01 11:00:02
364.59,364.59,364.59,364.59,305.0,2019-01-01 11:00:03
...
<file3>
o,h,l,c,v,t
364.4,364.4,364.4,364.4,155.0,2019-01-01 12:00:00
364.4,364.59,364.4,364.59,1371.0,2019-01-01 12:00:01
...
提前感谢用于获取所有文件的路径,这些文件在datadir
中以AAPL\ucode>开头,并使用pd.read\u csv
以及可选参数parse\u dates
和index\u col
,最后用于浓缩所有dfs
并用于对index
上的数据框进行排序
from pathlib import Path
dfs = [pd.read_csv(p, parse_dates=['t'])
for p in Path(datadir).glob(r'AAPL_*')]
df = pd.concat(dfs).drop_duplicates('t').set_index('t').sort_index()
结果:
print(df)
o h l c v
t
2019-01-01 10:59:59 364.40 364.40 364.40 364.40 155.0
2019-01-01 11:00:00 364.40 364.59 364.40 364.59 1371.0
2019-01-01 11:00:01 364.59 364.59 364.59 364.59 305.0
2019-01-01 11:00:02 364.59 364.59 364.59 364.59 305.0
2019-01-01 11:00:03 364.59 364.59 364.59 364.59 305.0
2019-01-01 12:00:00 364.40 364.40 364.40 364.40 155.0
2019-01-01 12:00:01 364.40 364.59 364.40 364.59 1371.0
谢谢你的快速回复。乍一看很好看。仍然必须进行数据检查。@GrJP当然可以。快乐编码!仍在尝试删除重复的索引。尝试使用.drop_duplicates(),但最后我的总数不匹配。在我的结果中,我在大约90.000行中短了大约40行。仍在调查…您正试图在同一时间删除重复条目,对吗?>非常感谢。编辑起作用了。结果完全符合我的预期。祝您有个美好的一天!
from pathlib import Path
dfs = [pd.read_csv(p, parse_dates=['t'])
for p in Path(datadir).glob(r'AAPL_*')]
df = pd.concat(dfs).drop_duplicates('t').set_index('t').sort_index()
print(df)
o h l c v
t
2019-01-01 10:59:59 364.40 364.40 364.40 364.40 155.0
2019-01-01 11:00:00 364.40 364.59 364.40 364.59 1371.0
2019-01-01 11:00:01 364.59 364.59 364.59 364.59 305.0
2019-01-01 11:00:02 364.59 364.59 364.59 364.59 305.0
2019-01-01 11:00:03 364.59 364.59 364.59 364.59 305.0
2019-01-01 12:00:00 364.40 364.40 364.40 364.40 155.0
2019-01-01 12:00:01 364.40 364.59 364.40 364.59 1371.0