所以我的google-fu似乎没有让我公正地看待应该是一个微不足道的程序。
在Pandas for Python中我有2个数据集,我想合并它们。使用.concat可以正常工作。问题是,.concat重新排序我的列。从数据检索的角度来看,这是微不足道的。从一个"我只想打开文件并快速查看最重要的专栏"从观点来看,这很烦人。
File1.csv
Name Username Alias1
Tom Tomfoolery TJZ
Meryl MsMeryl Mer
Timmy Midsize Yoda
File2.csv
Name Username Alias 1 Alias 2
Bob Firedbob Fire Gingy
Tom Tomfoolery TJZ Awww
Result.csv
Alias1 Alias2 Name Username
0 TJZ NaN Tom Tomfoolery
1 Mer NaN Meryl MsMeryl
2 Yoda NaN Timmy Midsize
0 Fire Gingy Bob Firedbob
1 TJZ Awww Tom Tomfoolery
结果很好,但在我使用的数据文件中,我有1,000列。最重要的2-3个现在位于中间。有没有办法,在这个玩具示例中,我可以强制使用"用户名"成为第一列和#34;名称"成为第二列,显然保留了每个下面的值。
另外作为旁注,当我保存到文件时,它也会在侧面保存该编号(0 1 2 0 1)。如果有办法防止这种情况发生,那就太酷了。如果没有,这不是什么大问题,因为它是一个快速修复删除。
谢谢!
答案 0 :(得分:10)
假设连接的DataFrame为df
,您可以按如下方式执行列的重新排序:
important = ['Username', 'Name']
reordered = important + [c for c in df.columns if c not in important]
df = df[reordered]
print df
输出:
Username Name Alias1 Alias2
0 Tomfoolery Tom TJZ NaN
1 MsMeryl Meryl Mer NaN
2 Midsize Timmy Yoda NaN
0 Firedbob Bob Fire Gingy
1 Tomfoolery Tom TJZ Awww
数字列表[0, 1, 2, 0, 1]
是DataFrame的索引。要防止将它们写入输出文件,您可以使用index=False
中的to_csv()
选项:
df.to_csv('Result.csv', index=False, sep=' ')