基本上,我正在遍历一堆CSV文件,最后我想将每个数据帧append成一个。实际上,我需要的只是一个rbind类型的函数。因此,我做了一些搜索,并跟踪了guide。然而,我仍然无法得到理想的解决方案。
下面附上了一个示例代码。例如,data1的形状始终为47 x 42。但在前三个文件之后,data_out_final的形状变为(47,42)、(47,84)和(47,126)。理想情况下,它应该是(141,42)。此外,我还检查了data1的索引,即RangeIndex(start=0, stop=47, step=1)。感谢您的建议!
我的pandas版本是0.18.1
代码
appended_data = []
for csv_each in csv_pool:
data1 = pd.read_csv(csv_each, header=0)
# do something here
appended_data.append(data2)
data_out_final = pd.concat(appended_data, axis=1)如果使用data_out_final = pd.concat(appended_data, axis=1),则data_out_final的形状变为(141,94)
PS
有点想通了。实际上,您必须在pd.concat之前标准化列名。
发布于 2016-08-09 04:46:53
>>> df1
a b
0 -1.417866 -0.828749
1 0.212349 0.791048
2 -0.451170 0.628584
3 0.612671 -0.995330
4 0.078460 -0.322976
5 1.244803 1.576373
6 1.169629 -1.135926
7 -0.652443 0.506388
8 0.549604 -0.691054
9 -0.512829 -0.959398
>>> df2
a b
0 -0.652161 0.940932
1 2.495067 0.004833
2 -2.187792 1.692402
3 1.900738 0.372425
4 0.245976 1.894527
5 0.627297 0.029331
6 -0.828628 -1.600014
7 -0.991835 -0.061202
8 0.543389 0.703457
9 -0.755059 1.239968
>>> pd.concat([df1, df2])
a b
0 -1.417866 -0.828749
1 0.212349 0.791048
2 -0.451170 0.628584
3 0.612671 -0.995330
4 0.078460 -0.322976
5 1.244803 1.576373
6 1.169629 -1.135926
7 -0.652443 0.506388
8 0.549604 -0.691054
9 -0.512829 -0.959398
0 -0.652161 0.940932
1 2.495067 0.004833
2 -2.187792 1.692402
3 1.900738 0.372425
4 0.245976 1.894527
5 0.627297 0.029331
6 -0.828628 -1.600014
7 -0.991835 -0.061202
8 0.543389 0.703457
9 -0.755059 1.239968除非我误解了你需要的东西,否则这就是你需要的。
发布于 2016-08-09 04:42:01
尝试:http://pandas.pydata.org/pandas-docs/stable/10min.html?highlight=concat#concat
pandas提供了各种工具,可以轻松地将系列、DataFrame和面板对象与连接/合并类型操作中的索引和关系代数功能的各种集合逻辑组合在一起。
https://stackoverflow.com/questions/38838059
复制相似问题