我有一个pandas数据框(结果)df,我使用两个其他数据框的合并生成了n(变量)列:
result2=result1.iloc[:,[0,4,5,1,2,3]] #this works fine.
result1数据帧应该有一个变量列数(这是一个更大的脚本的一部分)。我希望以最后两列连续第二列和第三列的方式排列列,然后所有其余列将跟随(第一列保留为第一列)。如果已知result1有6列,那么我可以使用:
result2=result1.iloc[:,[0,len(result1.columns), len(result1.columns)-1, 1:len(result1.columns-2]]
#Assuming 6 columns : 0, 5 , 4 , 1, 2, 3
但是,我需要1,2,3为范围格式,因为输入每个df的全部数字是不切实际的。所以,我想使用:
javac -classpath /lib/jarContainingTheClass.jar /examples/HelloWorld.java
这将是一种想法,但这会产生语法错误。有什么建议可以解决这个问题吗?
答案 0 :(得分:2)
我没有使用切片语法,而只是构建一个列表并使用它:
>>> df
0 1 2 3 4 5
0 0 1 2 3 4 5
1 0 1 2 3 4 5
2 0 1 2 3 4 5
3 0 1 2 3 4 5
4 0 1 2 3 4 5
>>> ncol = len(df.columns)
>>> df.iloc[:,[0, ncol-1, ncol-2] + list(range(1,ncol-2))]
0 5 4 1 2 3
0 0 5 4 1 2 3
1 0 5 4 1 2 3
2 0 5 4 1 2 3
3 0 5 4 1 2 3
4 0 5 4 1 2 3