读取 csv 文件时向数据框添加列 [pandas]

m-k*_*tan 4 python pandas

我正在读取多个 csv 文件并将它们组合成一个数据帧,如下所示:

pd.concat([pd.read_csv(f, encoding='latin-1') for f in glob.glob('*.csv')],
         ignore_index=False, sort=False)
Run Code Online (Sandbox Code Playgroud)

问题:

我想根据连接到数据帧的每个 csv 文件的 csv 文件名添加任何 csv(数据帧)中不存在的列。任何帮助将不胜感激。

pie*_*eca 6

glob.glob返回普通字符串,因此您只需在循环中向每个单独的数据帧添加一列即可。

假设您的目录中有文件 df1.csv 和 df2.csv:

import glob
import pandas as pd

files = glob.glob('df*csv')
dfs = []
for file in files:
    df = pd.read_csv(file)
    df['filename'] = file
    dfs.append(df)
df = pd.concat(dfs, ignore_index=True)
df

    a   b   filename
0   1   2   df1.csv
1   3   4   df1.csv
2   5   6   df2.csv
3   7   8   df2.csv
Run Code Online (Sandbox Code Playgroud)