2017-01-25 242 views
3

我的Python代碼在下面的示例中正常工作。我的代碼結合了一個CSV文件的目錄並匹配頭文件。但是,我想更進一步 - 如何添加一個附加使用的CSV的文件名的列?Python熊貓添加文件名列CSV

import pandas as pd 
import glob 

globbed_files = glob.glob("*.csv") #creates a list of all csv files 

data = [] # pd.concat takes a list of dataframes as an agrument 
for csv in globbed_files: 
    frame = pd.read_csv(csv) 
    data.append(frame) 

bigframe = pd.concat(data, ignore_index=True) #dont want pandas to try an align row indexes 
bigframe.to_csv("Pandas_output2.csv") 

回答

7

這應該工作:

import os 

for csv in globbed_files: 
    frame = pd.read_csv(csv) 
    frame['filename'] = os.path.basename(csv) 
    data.append(frame) 

frame['filename']創建一個名爲filenameos.path.basename()新列變成像/a/d/c.txt路徑到文件名c.txt

+0

太棒了。我知道這很容易!謝謝 – specmer