gpt4 book ai didi

python-3.x - Python 3 pandas 数据框创建取决于文件格式 csv 或 txt

转载 作者:行者123 更新时间:2023-12-01 02:38:39 25 4
gpt4 key购买 nike

作为一个新的 python 学习者,我正在根据字典中的文件格式创建数据框。

下面是我正在处理的脚本。所以我的主要目标是使用 if/else 有条件地执行 pd.read_csv(filename) 但是,我不确定如何将正确的文件映射到 (filename) 部分。

在filename字典中,当有一个txt格式的文件时,我想使用df = pd.read_csv(filename, delimiter = '|')来执行它如果文件是 csv 那么我想通过 df = pd.read_csv(filename) 来执行它有人可以帮助我需要在此处添加什么才能将文件映射到适当的 pd.read_csv 选项吗?

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 = '|')

最佳答案

我认为您的基本想法是正确的。唯一的问题是,您将创建数量可变的数据帧。为此,我建议将其组织成数据框字典。

示例:

假设 1.txt 包含:

a|b|c
1|2|3

2.csv包含:

a,b,c
4,5,6

然后你可以这样做:

filename = ["1.txt", "2.csv"]

sub = '.csv'

# Create empty dictionary
dict_of_dfs = {}

# Iterate through your files
for f in filename:
# if .csv is found, add a dictionary key with the filename minus the extension
# Use default delimiter
if sub in f:
dict_of_dfs[f[:-4]] = pd.read_csv(f)
# For other (.txt) files, just change the delimiter
else:
dict_of_dfs[f[:-4]] = pd.read_csv(f, delimiter='|')

您可以像访问任何其他字典一样访问数据框,只需使用文件名减去扩展名作为键:

>>> dict_of_dfs['1']
a b c
0 1 2 3
>>> dict_of_dfs['2']
a b c
0 4 5 6

关于python-3.x - Python 3 pandas 数据框创建取决于文件格式 csv 或 txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51716343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com