首页 > 解决方案 > 使用 pandas 重置 CSV 的列位置

问题描述

我将 csv 文件读入数据框

data = pd.read_csv(file, sep="\x01", header=None)

在该数据框中插入 rundate 作为列

data["rundate"] = inpdate

默认情况下,此列 rundate 添加为最后一列,我想重新索引它并将其放置为第一列。

目前,当我执行 a 时,print(data.columns)我得到以下输出

Index([        0,         1,         2,         3,         4,         5,
               6,        'rundate'],
      dtype='object')

我想要的是

Index([        'rundate',    0,         1,         2,         3,         
                  4,         5,         6,],
      dtype='object')

我在网上看到的所有示例都有一组固定的列,如下所示:

columnsTitles = ['year', 'reports', 'county']
df.reindex(columns=columnsTitles)

我生成的列来自动态读取 csv 文件。还有其他方法可以让运行日期显示为第一列吗?

标签: pythonpandascsv

解决方案


也许您可以尝试一下insert,它将新列插入到第一个:

data.insert(0, 'rundate', inpdate)

或者,您可以通过传递列名列表来重新排序列顺序,使得最后一列首先出现并在其后追加:

data = data[data.columns[-1:].tolist()+data.columns[:-1].tolist()]

推荐阅读