Pandas 在读取 CSV 时重命名列

Pandas renaming columns while reading CSV

我在一个文件夹中有多个文本文件,而不是输出以制作 table。我让 table 成功导出到 .csv 文件。问题是我想在每一列中添加一个 header 并且我希望 header 的名称成为文本文件的名称。每个文件都是table中的一列数据。因此,例如,第 1 列来自 textfile.1。我想在第 1 列中添加 header "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)

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

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
)