我从CSV加载了以下格式的数据框:
stock_code price
20180827 001 10
20180827 002 11
20180827 003 12
20180827 004 13
20180826 001 14
20180826 002 15
20180826 003 11
20180826 004 10
20180826 005 19
我想将其转换为以下格式:
001 002 003 004 005
20180827 10 11 12 13 nan
20180826 14 15 11 10 19
这是我执行转换的函数(oracle_data
是原始数据帧),但是547500行数据帧需要7分钟。有没有办法加快速度?
def transform_data(oracle_data):
data_code = oracle_data[0]
data_date = oracle_data[1]
factor_date = sorted(data_date.unique())
stock_list = sorted(data_code.unique())
factor_data = pd.DataFrame(index = factor_date, columns = stock_list)
sort = oracle_data.sort_index()
for n in oracle_data.index:
factor_data.at[oracle_data.at[n,1],oracle_data.at[n,0]]=oracle_data.at[n,2]
return factor_data