【问题标题】:Pandas renaming columns while reading CSVPandas 在读取 CSV 时重命名列
【发布时间】:2020-07-09 19:00:07
【问题描述】:

我在一个文件夹中有多个文本文件,而不是输出来制作表格。我成功地将表格导出到.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)

【问题讨论】:

    标签: python pandas io


    【解决方案1】:

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

    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
    )
    

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 1970-01-01
      • 2015-10-17
      • 2016-11-22
      • 2022-07-27
      • 2018-01-21
      • 2013-09-25
      • 2019-07-16
      • 2015-06-09
      相关资源
      最近更新 更多