加速迭代加入到d

2024-06-01 08:04:17 发布

您现在位置:Python中文网/ 问答频道 /正文

股票统计数据

date        mkt_cap    income    sales   ...
2019-08-15    ###        ###      ###    ...
2019-08-16    ###        ###      ###    ...
...           ...        ...      ...    ...

此代码从每个股票的stat文件中获取一列。说出“mkt\u cap”并将标题更改为股票名称,然后将其添加到主目录中。一旦主数据框中填充了来自同一扇区的所有股票统计信息,它就会写入一个新文件“mkt\u cap.csv”,然后继续下一个统计信息,最后是下一个扇区

def compile_sector_stats():
    for sector,name in zip(list_all_sectors, sector_names):
        main_df = pd.DataFrame()
        for item in items_averages:
            main_df = main_df[0:0]
            for value in sector:

                df = pd.read_csv('.../stocks/{}.csv'.format(value))
                df.set_index('date', inplace=True)
                df.rename(columns = {'{}'.format(item):'{}'.format(value)}, inplace=True)
                df.drop(df.columns.difference([value]),1,inplace=True)

                if main_df.empty:
                    main_df = df
                else:
                    main_df = main_df.join(df, how='outer')

        main_df.to_csv('.../sectors/{}/{}.csv'.format(name,item))

这段代码工作得很好,但当主数据框变大时,它开始慢很多。每个行业实际上有500-700只股票。有没有办法让这个过程更快,还是我只需要把行业列表缩小一点

编辑:

对于每个stat,输出CSV文件应该如下所示:

mkt_cap.csv

date        stock1  stock2  stock 3 ...
2019-08-15   ###      ###    ###
2019-08-16   ###      ###    ###
...          ...      ...    ... 

Tags: 文件csvinformatdffordatevalue