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

如何检索类似命名的 csv 文件并使用它们创建数据框

如何检索类似命名的 csv 文件并使用它们创建数据框

Cats萌萌 2022-05-24 16:50:23
我有多个 csv 文件,它们的名称按数字顺序相似(nba_1、nba_2 等)。就列名和数据类型而言,它们的格式都相同。不是手动将每个单独拉入数据框(nba_1 = pd.read_csv('/nba_1.csv')),而是有一种方法可以编写for循环或类似的东西来拉入并命名它们?我认为基本框架是这样的:for i in range(1, 6):     nba_i = pd.read_csv('../nba_i.csv')除此之外,我不知道细节。一旦我把它们拉进去,我将对它们中的每一个执行相同的操作(删除和格式化相同的列),所以我也想在那里迭代它们。预先感谢您的帮助。
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

我认为您真正的问题是如何将所有文件放入数据框中

使用标准库的一部分pathlib来处理您的文件。

Python 3 的 pathlib 模块:驯服文件系统

由于您的csv文件是相同的,正如您在问题中所述,将它们全部组合到一个数据帧中然后一次清理所有数据会更有效。

单独清理每个数据帧然后将它们组合起来效率较低

获取单个组合数据框

from pathlib import Path

import pandas as pd


p = Path(r'c:\some_path_to_files')  # set your path

files = p.glob('nba*.csv')  # find your files


# It was stated, all the files are the same format, so create one dataframe

df = pd.concat([pd.read_csv(file) for file in files]) 

[pd.read_csv(file) for file in files]是一个列表推导,它为每个文件创建一个数据框。

pd.concat合并列表中的所有文件

要获取单独的数据框:

创建一个dict数据框

每个key都是dict一个文件名

p = Path(r'c:\some_path_to_files')  # set your path

files = p.glob('nba*.csv')  # find your files


df_dict = dict()

for file in files:

    df_dict[file.stem] = pd.read_csv(file)

使用df_dict:

df_dict.keys()  # to show you all the keys


df_dict[filename]  # to access a specific dataframe


# after cleaning the individual dataframes in df_dict, they can be combined

df_final = pd.concat([value for value in df_dict.values()])


查看完整回答
反对 回复 2022-05-24
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

基于 Pandas 构建的 Dask 库具有一次将多个 csv 加载到单个数据帧的方法。



查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号