为了账号安全,请及时绑定邮箱和手机立即绑定

如何将多个文件作为单独的数据帧读取并在列上执行计算?

如何将多个文件作为单独的数据帧读取并在列上执行计算?

守候你守候我 2023-08-03 17:12:03
我计算单个股票的回报如下:data = pd.read_csv(r'**file**.csv')data.index = data.Datedata['Return %'] = data['AAPL'].pct_change(-1)*100data输出:    Date    AAPL    Return %Data            2020-09-11  2020-09-11  56.00   0.0000002020-09-10  2020-09-10  56.00   -3.8791622020-09-09  2020-09-09  58.26   2.1388502020-09-08  2020-09-08  57.04   -2.2115552020-09-04  2020-09-04  58.33   0.8820482020-09-03  2020-09-03  57.82   -3.5851262020-09-02  2020-09-02  59.97   -0.133222现在,我保存了许多其他 csv 文件作为股票代码,我想使用这些代码中的每一个来执行上述相同的计算。最重要的是,我想打印每个符号回报的最佳日期的报告。如果需要更多详细信息,请告诉我。
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

  • 我认为数据的最佳选择是将文件读入数据帧字典中。

    • 使用pathlib.glob创建所有文件的列表

    • 使用字典理解来创建数据帧的字典。

  • 字典可以按照字典的标准方式进行迭代,使用dict.items().

  • df_dict[k]对每个数据帧进行寻址,其中k是字典键,即文件名。

  • 从你的上一个问题来看,我希望.csv用一列而不是两列读入文件Date

  • 每个文件的数字数据应位于索引 0 的列中,之后Date设置为索引。

    • 由于每个文件的列名称都不同,因此最好使用.iloc对列进行寻址。

    • :表示所有行,0是数值数据的列索引。

  • df_dict.keys()将返回所有键的列表

  • 使用 单独访问数据框df_dict[key]

import pandas as pd

from pathlib import Path


# create the path to the files

p = Path('c:/Users/<<user_name>>/Documents/stock_files')


# get all the files

files = p.glob('*.csv')


# created the dict of dataframes

df_dict = {f.stem: pd.read_csv(f, parse_dates=['Date'], index_col='Date') for f in files}


# apply calculations to each dataframe and update the dataframe

# since the stock data is in column 0 of each dataframe, use .iloc

for k, df in df_dict.items():

    df_dict[k]['Return %'] = df.iloc[:, 0].pct_change(-1)*100


查看完整回答
反对 回复 2023-08-03
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信