熊猫在读取CSV时重命名列

时间:2020-07-09 19:00:07

标签: python pandas io

我在一个文件夹中有多个文本文件,而不是要创建一个表。我已将该表成功导出到.csv文件。问题是我想向每个列添加标题,并且希望标题的名称成为文本文件的名称。每个文件都是表中的数据列。因此,例如,列1来自textfile.1。我想在第1列添加标题为"textfile.1"

的标题

这是我的工作代码:

import os

path = r'C:/path/to/file'
folders = os.listdir(path) #raw string

import pandas as pd

df = pd.DataFrame()
df_interim = pd.DataFrame()

for f in folders:
    df_interim = pd.read_csv(
        os.path.join(path,f ,),
        header=None
    )
    #concatenate the data into the original dataframe
    frames = [df, df_interim]
    df = pd.concat(frames, axis=1)
df.to_csv('outputfile',index=False)

1 个答案:

答案 0 :(得分:2)

修复代码,只需添加名称param并将其设置为文件名:

df_interim = pd.read_csv(os.path.join(path, f),
                         header=None,
                         names=[f])

有关read_csv的参数的更多信息,请参见here


这是删除循环和df_interim的更简单方法;

df_final = pd.concat([
    pd.read_csv(os.path.join(path, f), header=None, names=[f], squeeze=True)
    for f in folders
  ], axis=1
)