首页 > 解决方案 > 在 python 财务下载中避免按字母顺序排列

问题描述

我正在从 yahoo Finance 下载数据,并按字母顺序下载。不像我发送列表。如何避免这种情况?

STOCKS= ['^TNX', '^VIX', 'SPY', 'QQQ', 'DIA', '^FTSE', '^GDAXI', '^HSI', '^N225',
    'XLC', 'XLY', 'XLP', 'XLE', 'XLF', 'XLV', 'XLI', 'XLB', 'XLRE', 'XLK', 'XLU',
     'USO', 'GLD', 'SIL', 'CPER', 'PALL', 'LIT', 'URA', 'REMX', 'OYB', 'CORN', 'CANE', 'TAGS', 'WEAT']



start_date = '2016-06-01'
end_date = '2018-06-01'

extras_data = fyf.download(STOCKS, start_date, end_date)['Close']
print(extras_data)

什么回来了:

     CANE       CORN    ...       ^TNX       ^VIX

Date ...
2016-05-31 11.50 22.139999 ... 1.834 14.190000 2016-06-01 11.56 22.610001 ... 1.846 14.200000 2016-06-02 11.85 22.549999 ... 1.811 13.630000 2016-06-03 12.13 22.760000 ... 1.704 13.470000

这些列按字母顺序排列,我想尊重列表顺序。

标签: pythonyahoo-finance

解决方案


我就是这样做的。

"your code here"

#after pulling the data from fyf. This will check what
#actual stocks were pulled and put it in a list

sorted_columns = [STOCK for STOCK in STOCKS if STOCK in extras_data.columns]

#then I use those columns to re-sort the dataframe from fyf
print(extras_data.loc[:,sorted_columns])

#or you can store it back to itself
extras_data = extras_data.loc[:,sorted_columns]

推荐阅读