输出由for循环组成的数据帧

时间:2018-05-05 03:29:55

标签: pandas

我有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

1 个答案:

答案 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