【问题标题】:Name a dataframe based on csv file name?根据 csv 文件名命名数据框?
【发布时间】:2020-01-05 04:28:47
【问题描述】:

尝试批量分析一个充满 .csv 文件的文件夹,然后根据 .csv 名称再次保存它们。但是,我无法仅提取文件名并将其分配给数据框 (df)。

import glob
import pandas as pd

path = r'csv_in'
allFiles = glob.glob(path + '/*.csv')

for file_ in allFiles:   
    df = pd.read_csv(file_, header=0)
    df.name = file_
    print(df.name)

我得到的打印结果是“csv_in/*.csv”。

我正在寻找的结果只是 csv 名称,“*.csv”

【问题讨论】:

  • 你不需要在你的 glob 中包含 /

标签: python pandas glob


【解决方案1】:

使用[] 和os.path.basename 使用os.path.normpath 创建新列:

import os

for file_ in allFiles:   
    df = pd.read_csv(file_, header=0)
    df['name'] = os.path.basename(os.path.normpath(file_))
    #if need remove extension (csv)
    #df['name'] = os.path.splitext(os.path.basename("hemanth.txt"))[0]
    print(df.name)

【讨论】:

    猜你喜欢
    • 2017-12-23
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 2021-03-20
    • 2019-05-14
    • 2021-03-13
    相关资源
    最近更新 更多