ai didi

python - 如何从路径字符串中获取文件夹名称并将其添加到 pandas 数据框中的新列?

转载 作者:行者123 更新时间:2023-12-01 07:00:00 24 4
gpt4 key购买 nike

我想从 tar.gz 文件中读取文件夹的名称,并创建包含这些名称的列。

我正在使用此代码:

file_path = r"C:\Users\filename.tar.gz"
start_with = './mainfolder/'

import tarfile
import re
with tarfile.open(file_path, "r:*") as tar:
csv_path = tar.getnames()
csv_path = list(n for n in tar.getnames() if (n.endswith('.csv')) & (n.startswith(start_with)))
df = pd.DataFrame()

csv_list = []

for file in csv_path:
df_temp = pd.read_csv(tar.extractfile(file))
csv_list.append(df_temp)

df = pd.concat(csv_list)

在主文件夹中,有几个具有名称的文件夹。从文件夹“X”(例如)读取 csv 文件后,应在此 csv 文件中创建“FolderName”列,并且必须包含所有行的文件夹名称(“X”)。对于每个 csv 文件也是如此。

路径字符串的示例:./mainfolder/1001_name./mainfolder/1002_some_name

最佳答案

在以下行之后:

df_temp = pd.read_csv(tar.extractfile(file))

您可以使用os.path.dirname()方法从file路径字符串中获取文件夹名称。更多信息here .

您需要导入 os 模块。

示例:

#returns ./mainfolder/1001_name
full_folder_path = os.path.dirname(file)

#returns 1001_name
folder = os.path.basename(full_folder_path)

#returns name bit
result = folder[folder.index('_')+1:]

df_temp['FolderName'] = result

这将创建一个名为 FolderName 的新列,并为所有行设置值。更多信息here .

关于python - 如何从路径字符串中获取文件夹名称并将其添加到 pandas 数据框中的新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58683690/

24 4 0
文章推荐: python - 使用 Paramiko 连接到 SFTP 服务器时为 "getaddrinfo failed"
文章推荐: java - 在Java中,为什么参数化类型的构造函数的无类型调用会引起编译器警告?
文章推荐: sql - 除了 SQL Server 之外,哪个数据库可以安全地使用 GUID 作为主键?
文章推荐: jquery 调整父子大小
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com