pandas 如何一次写入一个数组值(dataframe到csv)?

qvk1mo1f  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(247)

这是工作得很好,但我有数千行写到csv。它需要几个小时才能完成,有时我的连接会下降,并阻止查询完成。

import pandas as pd
from yahooquery import Ticker

symbols = ['AAPL','GOOG','MSFT'] 
faang = Ticker(symbols)
faang.summary_detail
df = pd.DataFrame(faang.summary_detail).T
df.to_csv('output.csv', mode='a', index=True, header=True)

上面只有三个符号:symbols = ['AAPL','GOOG','MSFT'],但假设有50,000个符号。我现在要做的是一次将其分解为500个符号:

import pandas as pd
from yahooquery import Ticker

symbols = ['AAPL','GOOG','MSFT'] #imagine here are 500 symbols.
faang = Ticker(symbols)
faang.summary_detail
df = pd.DataFrame(faang.summary_detail).T
df.to_csv('summary_detailsample.csv', mode='a', index=True, header=True)

symbols = ['BABA','AMD','NVDA'] #imagine here are 500 symbols.
faang = Ticker(symbols)
faang.summary_detail
df = pd.DataFrame(faang.summary_detail).T
df.to_csv('output.csv', mode='a', index=True, header=True)

#Repeat the last five lines 100+ times for 50,000 symbols (500 symbols x 100 blocks of code).

所以最后的5行代码我复制了100多次来附加/写入所有符号的数据。它工作得很好,但是我不想有500行代码。我希望它一次附加一个符号的记录,一次把所有50,000个符号扔在那里(不必一遍又一遍地复制代码)。
也许最重要的是,我希望第一个符号的列标题后面跟着其他符号。一些符号将有20列,而其他符号将有15列左右。数据最终不匹配。行将不匹配其他行,等等。

kwvwclae

kwvwclae1#

尝试下面的循环遍历代码列表,在循环到CSV时附加 Dataframe 。

import pandas as pd
from yahooquery import Ticker

symbols = [#All Of Your Symbols Here]
for tick in symbols:
    faang = Ticker(tick)
    faang.summary_detail
    df = pd.DataFrame(faang.summary_detail).T
            
    df.to_csv('summary_detailsample.csv', mode='a', index=True, header=False)

相关问题