python - 使用 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 文件。还有其他方法可以让运行日期显示为第一列吗?
解决方案
也许您可以尝试一下insert
,它将新列插入到第一个:
data.insert(0, 'rundate', inpdate)
或者,您可以通过传递列名列表来重新排序列顺序,使得最后一列首先出现并在其后追加:
data = data[data.columns[-1:].tolist()+data.columns[:-1].tolist()]
推荐阅读
- javascript - Chrome 扩展程序开发问题
- javascript - 如何在 React 中动态添加一些现有元素之间的新元素?
- java - Java Jackson 使用不同的属性名称
- c# - 未找到签名密钥 - IdentityServer4、OpenSSL 和 ASP.NET Core API
- c - C 中的 RSA 实现
- symfony - Symfony Forms CollectionType,按 ID 索引
- java - Java - 设置期间
- java - 如何在java中将base16转换为base 64,反之亦然?
- java - 澄清新的JVM内存参数InitialRAMPercentage和MinRAMPercentage的含义
- docker - 使用带有自定义挂载点的 docker 卷创建卷