【发布时间】:2019-02-01 15:22:19
【问题描述】:
我有一个从 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
【问题讨论】:
-
你的功能是什么?可以分享一下吗?
-
我认为 pd.melt 可以帮助您。
-
您好,请通过链接。似乎是一个重复的问题。您可以为您的问题找到多个答案。 stackoverflow.com/questions/22127569/…