您就快到了。
问题在于,每个子数据帧中的列名都不同。因此,当pandas执行时concat
,它不仅将数据框追加到底部,还扩展了数据框以使其具有正确名称的新列,然后追加了行。
for sub_df in pieces:
sub_df.columns=range(12)
df2
到df8
包含你想要什么,我想。由于某种原因,您df1
只包含了前7列,而不是12列。我假设这是一个错字。
产生完整的工作代码(我将您的输入数据复制到名为的文件中'data1.csv'
)
import pandas as pd
import numpy as np
df = pd.read_csv('data1.csv')
df1 = df.ix[:,0:12]
df2 = df.ix[:,12:24]
df3 = df.ix[:,24:36]
df4 = df.ix[:,36:48]
df5 = df.ix[:,48:60]
df6 = df.ix[:,60:72]
df7 = df.ix[:,72:84]
df8 = df.ix[:,84:96]
pieces = (df1,df2,df3,df4,df5,df6,df7,df8)
# Give the columns the same labels in each sub dataframe
# I've used numbers for convenience - you can give more descriptive names if you want
for sub_df in pieces:
sub_df.columns=range(12)
df_final = pd.concat(pieces, ignore_index = True)
print df_final