2017-08-06 96 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