2017-08-06 95 views
0

我正在嘗試更改我創建的文件的標題。我使用的代碼如下:更改列標題CSV文件

import pandas as pd 
import os, sys 
import glob 
path = "C:\\Users\\cam19\\Desktop\\Test1\\*.csv" 
list_=[] 
for fname in glob.glob(path): 
    df = pd.read_csv(fname, dtype=None, low_memory=False) 
    output = (df['logid'].value_counts()) 
    list_.append(output) 
    df1 = pd.DataFrame() 
    df2 = pd.concat(list_, axis=1) 
    df2.to_csv('final.csv') 

基本上我循環瀏覽一個文件目錄並從每個文件中提取數據。使用這個是輸出下面的圖像; http://imgur.com/a/LE7OS

我所要做的就是將列名從'logid'更改爲當前正在搜索的文件名,但我不確定如何執行此操作。任何幫助都很棒!謝謝。

+0

追加值您創建一個DataFrame'DF'但從不使用它。這是故意的嗎?代碼的最後兩行在循環中執行。這是故意的嗎? – DyZ

+0

從以前的代碼中遺留下數據框,忽略它。最後兩行是故意的;然而,經過審查,我可以只更新list_,不需要不斷地寫新文件。謝謝。 – Cameron

回答

2

而是附加價值的嘗試創建數據框,並設置列即

output = pd.DataFrame(df['value'].value_counts()) 
output.columns = [os.path.basename(fname).split('.')[0]] 
list_.append(output) 

變化中的代碼問題

import pandas as pd 
import os, sys 
import glob 
path = "C:\\Users\\cam19\\Desktop\\Test1\\*.csv" 
list_=[] 

for fname in files: 
    df = pd.read_csv(fname) 
    output = pd.DataFrame(df['value'].value_counts()) 
    output.columns = [os.path.basename(fname).split('.')[0]] 
    list_.append(output) 


df2 = pd.concat(list_, axis=1) 
df2.to_csv('final.csv') 

希望它可以幫助

+0

這給了我無效的語法錯誤,但我完全不確定爲什麼。 – Cameron

+0

抱歉,在'list_.append'行缺少一個圓括號。 – Dark

+0

它似乎只是將名單追加到現在的名字。這樣,我有這個,但沒有數據了。 http://imgur.com/a/LE7OS – Cameron