首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python 3 pandas数据帧创建取决于文件格式csv或txt

Python 3 pandas数据帧创建取决于文件格式csv或txt
EN

Stack Overflow用户
提问于 2018-08-07 06:15:16
回答 1查看 215关注 0票数 3

作为一个新的python学习者,我正在努力创建依赖于字典中的文件格式的dataframe。

下面是我正在编写的脚本。因此,我的主要目标是使用if/else有条件地执行pd.read_csv(文件名)。然而,我不确定如何将正确的文件映射到(文件名)部分。

在文件名字典中,当有一个txt格式的文件时,我想使用df = pd.read_csv (文件名,分隔符= '|')来执行它。如果文件是csv格式的,那么我想通过df =pd.read_csv(文件名)来执行它。有人能帮我在这里添加什么才能将文件映射到适当的pd.read_csv选项吗?

代码语言:javascript
复制
filename = ["1.txt","2.csv","3.txt","4.csv"...etc]

sub = '.csv'

for file in filename:

    if sub in file:

        df = pd.read_csv(filename)
    else:

        df = pd.read_csv(filename, delimiter = '|')
EN

回答 1

Stack Overflow用户

发布于 2018-08-07 07:02:15

您可以使用zip封装您正在寻找的功能,并列出理解:

代码语言:javascript
复制
# Create a list that maps the file's extension to a delimiter
delimiters = [
    None if sub in file else '|'
    for file in filename
]
# Iterate through the delimiter/file pairs produced by zip
for delimiter, file in zip(delimiters, filename):
    df = pd.read_csv(file, delimiter=delimiter)

如果您只对获取CSV文件列表感兴趣,我建议您使用Python的pathlib模块:

代码语言:javascript
复制
from pathlib import Path
here = Path('.')
csvs = [
    file for file in here.iterdir()
    if file.suffix == 'csv'
]

一旦你有了这个列表,你也可以在列表理解中创建一个数据帧列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51716343

复制
相关文章

相似问题

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