excel 文件《600332》数据,其中表头的日期是不固定的,会不断向后添加:
fr_item | 2015-03-31 | 2015-06-30 | 2015-09-30 | 2015-12-31 |
---|---|---|---|---|
a2 | 47 | 105 | 151 | 191 |
a3 | 43 | 96 | 140 | 179 |
系统通过python 或者 pandas等转置为:
com_code | eday | a2 | a3 |
---|---|---|---|
600332 | 42094 | 47 | 43 |
600332 | 42185 | 105 | 96 |
600332 | 42277 | 151 | 140 |
600332 | 42369 | 191 | 179 |
其中com_code 是文件名中提取,网上找到一段转置的代码可以转置:
df = pd.read_csv(path, encoding='gbk', header=0)
df = df.fillna("") # 去除可能的na值
data = df.values
index1 = list(df.keys())
data = list(map(list, zip(*data)))
data = pd.DataFrame(data, index=index1)
print(data)
# 导入数据库
res = pd.io.sql.to_sql(data, 'cc', con=engine_ts,
index=False, if_exists='append')
但是执行后,表头上方数字0,1,2索引数,如果直接导入数据库,就会变成列明,而我希望的列明是a1,a2等。
转置效果如下。
如果前面需要加一列com_code字段又如何实现呢?