情况是我有一些文件,其中包含具有多个字段的各种股票的 time_series 数据。每个文件包含
time, open, high, low, close, volume
目标是将所有内容放入表单的一个数据框中
field open high ...
security hk_1 hk_2 hk_3 ... hk_1 hk_2 hk_3 ... ...
time
t_1 open_1_1 open_2_1 open_3_1 ... high_1_1 high_2_1 high_3_1 ... ...
t_2 open_1_2 open_2_2 open_3_2 ... high_1_2 high_2_2 high_3_2 ... ...
... ... ... ... ... ... ... ... ... ...
我创建了一个多索引
fields = ['time','open','high','low','close','volume','numEvents','value']
midx = pd.MultiIndex.from_product([security_name'], fields], names=['security', 'field'])
首先,尝试将该多索引应用到我从 csv 读取数据中获得的数据帧(通过创建新的数据帧并添加索引)
for c in eqty_names_list:
midx = pd.MultiIndex.from_product([[c], fields], names=['security', 'field'])
df_temp = pd.read_csv('{}{}.csv'.format(path, c))
df_temp = pd.DataFrame(df_temp, columns=midx, index=df_temp['time'])
df_temp.df_name = c
all_dfs.append(df_temp)
然而,新的数据帧仅包含 nan
security 1_HK
field time open high low close volume
time
NaN NaN NaN NaN NaN NaN NaN
此外,它仍然包含时间列,尽管我尝试将其设为索引(以便稍后我可以按索引加入其他股票的所有其他数据帧以获取聚合数据帧)。
如何在不丢失数据的情况下将多重索引应用于数据帧,然后像这样加入数据帧
security 1_HK
field time open high low close volume
time
创建类似的东西(注意层次结构字段和安全性已切换)
field time open high ...
security 1_HK 2_HK ... 1_HK 2_HK ... ...
time