对于 pandas 时间序列中的固定格式错误,列索引必须是唯一的

Columns index has to be unique for fixed format error in pandas time series

当我尝试保存通过组合多个 时间序列 数据帧形成的数据帧时,我得到了 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

如有必要,您可以使用 cumcount for count duplicates, replace 0 并将其添加到原始列名称中:

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