首页 > 解决方案 > 如何打印完整的 yFinance 数组而不截断?

问题描述

当我尝试打印到屏幕或保存到文本文件时,通过 yfinance 下载股票的输出,它会像这样截断输出:

                          Adj Close                ...   Volume
                               ADXS  CHEK    CLPS  ...     TUSK     TYHT     VOXX
Datetime                                           ...
2020-01-28 07:00:00-05:00    0.7900   NaN     NaN  ...      NaN      NaN      NaN
2020-01-28 08:00:00-05:00    0.8090   NaN     NaN  ...      NaN      NaN      NaN
2020-01-28 09:00:00-05:00    0.7799   NaN     NaN  ...      NaN      NaN      NaN
2020-01-28 09:30:00-05:00    0.7990  2.10  3.5000  ...      0.0      0.0      0.0
2020-01-28 10:30:00-05:00    0.7897  2.12  3.4283  ...  11931.0  27734.0   5196.0
...                             ...   ...     ...  ...      ...      ...      ...
2020-02-14 14:30:00-05:00    1.0300  1.73  3.1087  ...  10005.0  13814.0  14255.0
2020-02-14 15:30:00-05:00    1.0199  1.75  3.0800  ...  15483.0   6871.0   7046.0
2020-02-14 16:00:00-05:00    1.0100   NaN     NaN  ...      0.0      0.0    400.0
2020-02-14 17:00:00-05:00    1.0000   NaN     NaN  ...      NaN      0.0      NaN
2020-02-14 18:00:00-05:00    1.0100   NaN     NaN  ...      0.0      NaN      NaN

[215 rows x 156 columns]

如何打印完整的 NumPy 数组而不截断?我尝试添加:

np.set_printoptions(precision=3, suppress=True, threshold=np.inf)
#As well as 
np.set_printoptions(precision=3, suppress=True, threshold=sys.maxsize)

虽然这将打印大型数组,但它仍然对输出没有影响。

然后我尝试在 for 循环中执行一个 for 循环和一个 for 循环,但这只是打印了标题。

这是我对这部分的内容:

rangeOfDays=21
endDateRange= datetime.date.today()- datetime.timedelta(days=(rangeOfDays+1))
startDateRange= EndTestingDate - datetime.timedelta(days=(730-rangeOfDays))
timeBetweenDates = endDateRange- startDateRange
daysBetweenDates = timeBetweenDates.days                            
randomNumOfDays = random.randrange(daysBetweenDates)                
randomDay= startDateRange + datetime.timedelta(days=randomNumOfDays)  
lastDay=randomDay + datetime.timedelta(days=(dayRange))
#All of this is just the date stuff


StockNames =['LODE', 'CLPS', 'CNET', 'NXTD', 'PBTS', 'PETZ', 'GRNQ', 'PHCF', 'MTC', 'PCSA', 'TUSK']
Break=yf.download(StockNames, start=randomDay, 
                          end=lastDay, 
                          progress=True, 
                          interval ='60m',
                          prepost=True, 
                          threads=100)
Break.head()
print (Break)

有没有办法将其展开以打印到屏幕上或全部保存到文件中?

标签: pythonarraysyfinance

解决方案


如果您所追求的只是要打印全帧,请尝试此操作。过去为我工作。归功于我得到它的其他一些 Stackoverflow 帖子:

import pandas as pd
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', None)

推荐阅读