我有3个csv文件,每个单列。 我尝试通过for循环读取它们并输出单个数据帧(DF)
files = ['a.csv', 'b.csv', 'c.csv']
index = np.arange(np.datetime64('2010-01-01'), np.datetime64('2010-01-11'))
columns = list(map(str,range(len(files))))
DF = pd.DataFrame(index=indices, columns=columns)
print (DF)
for i, f in enumerate(files):
raw = pd.read_csv(f, header=None, sep=',')
raw = raw.set_index('Dates').reindex(index).reset_index()
DF[str(i)] =raw
但没有成功,有什么想法吗?
编辑:
该文件包含此类数据:
a
1/1/2010 5
1/2/2010 6
1/3/2010 7
1/4/2010 9
1/5/2010 1
1/6/2010 39
1/7/2010 5
1/8/2010 32
1/9/2010 1
1/10/2010 1
1/11/2010 0
B'/ P>
1/1/2010 5
1/2/2010 19
1/3/2010 7
1/4/2010 9
1/5/2010 1
1/6/2010 24
1/7/2010 5
1/8/2010 32
c
1/1/2010 34
1/2/2010 27
1/3/2010 34
1/4/2010 21
1/5/2010 34
1/6/2010 34
答案 0 :(得分:1)
您可以尝试pd.concat
files = ['a.csv', 'b.csv', 'c.csv']
index = np.arange(np.datetime64('2010-01-01'), np.datetime64('2010-05-31'))
columns = list(map(str,range(len(files))))
s=pd.concat([pd.read_csv(f, header=None, sep=',').set_index(0) for f in files],axis = 1)
s=s.reindex(index).reset_index()
s.columns=columns
更新
DF = pd.DataFrame(index=index, columns=columns)
for i, f in enumerate(files):
raw = pd.read_csv(f, header=None, sep=',')
raw = raw.set_index(0).reindex(index).reset_index()
DF[str(i)] =raw