亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將多個文件作為單獨的數據幀讀取并在列上執行計算?

如何將多個文件作為單獨的數據幀讀取并在列上執行計算?

守候你守候我 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 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號