gpt4 book ai didi

csv - 使用正确的文件名将当前工作目录中的所有 CSV 文件读入 pandas

转载 作者:行者123 更新时间:2023-12-01 13:42:22 26 4
gpt4 key购买 nike

我正在尝试使用循环来读取多个 CSV(目前是这样,但将来会混合使用它和 xls)。

我希望 pandas 中的每个数据框都具有相同的名称,不包括我文件夹中的文件扩展名。

import os 
import pandas as pd


files = filter(os.path.isfile, os.listdir( os.curdir ) )
files # this shows a list of the files that I want to use/have in my directory- they are all CSVs if that matters

# i want to load these into pandas data frames with the corresponding filenames

# not sure if this is the right approach....
# but what is wrong is the variable is named 'weather_today.csv'... i need to drop the .csv or .xlsx or whatever it might be

for each_file in files:
frame = pd.read_csv( each_file)
each_file = frame

伯尼似乎很棒,但有一个问题:

or each_file in files:
frame = pd.read_csv(each_file)
filename_only = os.path.splitext(each_file)[0]
# Right below I am assigning my looped data frame the literal variable name of "filename_only" rather than the value that filename_only represents
#rather than what happens if I print(filename_only)
filename_only = frame

例如,如果我的文件列表中的两个文件是 weather_today、earthquakes.csv(按此顺序),则不会创建“earthquakes”和“weather”。

但是,如果我简单地键入“filename_only”并单击 python 中的回车键——那么我将看到地震数据框。如果我有 100 个文件,那么列表循环中的最后一个数据框名称将被命名为“filename_only”,而其他 99 个则不会,因为以前的分配从未进行过,第 100 个会覆盖它们。

最佳答案

您可以使用 os.path.splitext()为此“将路径名路径分成一对 (root, ext),使得 root + ext == path,ext 为空或以句点开头且最多包含一个句点。”

for each_file in files:
frame = pd.read_csv(each_file)
filename_only = os.path.splitext(each_file)[0]
filename_only = frame

正如评论中所问,我们想要一种仅过滤 CSV 文件的方法,这样您就可以执行如下操作:

files = [file for file in os.listdir( os.curdir ) if file.endswith(".csv")]

关于csv - 使用正确的文件名将当前工作目录中的所有 CSV 文件读入 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38887236/

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