2017-06-21 39 views
1

我得到ValueError: Columns index has to be unique for fixed format当我试图保存我组合多个时间序列数据帧形成的数据帧。这是我做了什么列索引必须是唯一的固定格式错误熊猫时间序列

df1=pd.concat([d1,d2,d3,d4],axis=1] 
df2=pd.DataFrame(d5) 
df3=pd.concat([d6,d7,d8],axis=1] 

main_df=pd.concat([df1,df2,df3],axis=1) 
main_df=main_df.dropna() 
main_df.head() 

到这里它工作正常的样本,但是当我试图挽救这些数据输入到一个HDF5文件,它给我这个错误Columns index has to be unique for fixed format

fi=pd.read_hdf("data.h5") 
fi['df']=main_df #this line cause the error 
+0

你需要DUPL icate列名?最简单的解决方案是重命名重复的列名称。 – jezrael

+0

是的,我有一些具有相同名称的列什么是重命名所有重复列的最佳方式。我有一个非常大的数据集> 30列 – Eka

回答

1

您可以使用cumcount为计数duplicatesreplace0如果必要的话,并把它添加到原来的列名:

df = pd.DataFrame([[1,2,3,4]], columns = list('abbc')) 
print (df) 
    a b b c 
0 1 2 3 4 

s = df.columns.to_series() 
df.columns = s + s.groupby(s).cumcount().astype(str).replace({'0':''}) 
print (df) 
    a b b1 c 
0 1 2 3 4 
相关问题