如何在python中将多个文本文件导入到一个数据帧中?

2024-09-27 00:19:40 发布

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

我找到了here如何将多个文本文件导入一个数据帧。然而,它给出了一个错误。文件名为footballseason1、footballseason2、footballseason3。。。(直到足球赛第5000季)

import pandas as pd
import datetime as dt
import os, glob
os.chdir("~/Downloads/data")
filenames = [i for i in glob.glob("*.txt")]

FileNotFoundError: [Errno 2] No such file or directory: '~/Downloads/data'

但是,如果我尝试导入一个文件,则一切正常,并且找到了目录

df = pd.read_csv("~/Downloads/data/footballseason1.txt", sep=",")

你能帮我解决这个问题吗?有没有办法不用更改目录,只需使用所有文件所在的路径执行所有步骤


Tags: 文件数据import目录txtdatahereos
3条回答

通过路径库->

import pandas as pd
from pathlib import Path
inp_path = Path("~/Downloads/data")
df = pd.concat([
    pd.read_csv(txt_file, sep=',') for txt_file in inp_path.glob('*.txt')
])

添加检查->

import pandas as pd
from pathlib import Path
inp_path = Path("~/Downloads/data")
if inp_path.exists():
    df = pd.concat([
        pd.read_csv(txt_file, sep=',') for txt_file in inp_path.glob('*.txt')
    ])
else:
    print('input dir doesn\'t exist please check path')

Python的os默认情况下不理解~,因此它needs to be expanded manually

filenames = [i for i in glob.glob(os.path.expanduser("~/Downloads/data/*.txt"))]

您可以使用python的list comprehensionpd.concat如下所示

df = pd.concat([pd.read_csv(i, sep=',') for i in glob.glob("~/Downloads/data/*.txt", recursive=True)])

相关问题 更多 >

    热门问题