微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我将文件名添加到数据框中,但它只添加了相同的名称

如何解决我将文件名添加到数据框中,但它只添加了相同的名称

我有很多 csv 文件要打开,我需要添加一个包含这些文件名称的额外列。例如,我有 x.csv、y.csv、z.csv 等。在 csv 文件中,它如下所示:

X  Z
1 3
4 5
4 6

它应该是这样的

    X  Z name
    1 3  x
    4 5  x
    4 6  x
    4 5  y
    4 5  y
    1 2  y 

我的代码在下面,但它只返回 1 个值...

import pandas as pd
import os
import rglob

file_list = rglob.rglob("path","*")
    
li = []
    
for path in file_list:
    df = pd.read_csv(path,index_col=None,header=0,)
    file_name = os.listdir('path')[0]
    df["file_name"] = file_name
    li.append(df)

知道如何修复它吗?

最好的问候

解决方法

您的 os.listdir 是错误的。 os.listdir 返回目录中的文件列表。您应该使用 os.basenamepathlib.Path.name

使用路径库:

import pandas as pd
from pathlib import Path

file_list = Path("path").rglob("*.csv")
    
li = []
    
for path in file_list:
    df = pd.read_csv(path,index_col=None,header=0,)
    df["file_name"] = path.name
    li.append(df)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。