首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FOR循环将CSV文件读取到单独的数据帧中

使用FOR循环将CSV文件读取到单独的数据帧中
EN

Stack Overflow用户
提问于 2021-06-18 20:26:39
回答 3查看 42关注 0票数 1

我有600个csv文件,我想使用pd.read.csv读取这些文件以分离数据帧。我已经尝试了下面的代码。

代码语言:javascript
复制
for stock in stock_list:
    df_stock = pd.read_csv("D:/Stocks/CSV/" + stock + ".csv")

我希望每个数据帧在stock_list中分别存储为df_the各自的股票名称(例如df_pfizerdf_ICBC等),但我的代码将其读取到单个数据帧中。股票名称在列表stock_list中。

EN

回答 3

Stack Overflow用户

发布于 2021-06-18 20:32:08

有600个变量是不容易处理的,你应该使用字典。

代码语言:javascript
复制
df_dict = {}
for stock in stock_list:
    df_dict[stock] = pd.read_csv("D:/Stocks/CSV/" + stock + ".csv")

..。或者:

代码语言:javascript
复制
df_dict = {stock: pd.read_csv("D:/Stocks/CSV/" + stock + ".csv") for stock in stock_list}
票数 2
EN

Stack Overflow用户

发布于 2021-06-18 20:32:34

您可以将数据帧添加到python dict

代码语言:javascript
复制
df_stocks = {}
for stock in stock_list:
    df_stock = pd.read_csv("D:/Stocks/CSV/" + stock + ".csv")
    df_stocks[stock] = df_stock

并访问任何数据帧:

代码语言:javascript
复制
df_stocks['df_pfizer']

将返回'df_pfizer'数据帧,

代码语言:javascript
复制
df_stocks['df_ICBC']

将返回df_stocks['df_ICBC']数据帧,依此类推。

票数 1
EN

Stack Overflow用户

发布于 2021-06-18 20:31:47

您需要首先创建一个dataframe,然后使用字典comp根据股票名称将它们分开。

代码语言:javascript
复制
from pathlib import Path
import pandas as pd

dfs = pd.concat(
                [pd.read_csv(f) for f in Path(r"D:/Stocks/CSV/").glob('*.csv')]
              )

stock_dfs = {stock : frame for stock,frame in dfs.groupby('stock_list')}

然后,您可以根据其键调用每个df

代码语言:javascript
复制
stock_dfs['df_pfizer']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68035167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档