熊猫:选择最后的“ N”列

时间:2019-02-18 22:27:24

标签: python pandas indexing

我有一个df,我试图在其中选择列的最后一半(由于列数可变,因此无法选择按列标签进行选择)。

length = len(rec_df.columns)
print(length)
selection = rec_df.columns[-length/2:]
print(selection)

很显然,当我打印length时,我得到6,但是使用length变量进行索引时却出现错误。

但是,如果我只是更改-length/2:-> -3:,它就可以工作。怎样才能对变量length起作用?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

df.columns[len(df.columns) - n:]做您想达到的目标吗?由于您要求输入 n 列。

df = pd.DataFrame([range(6), range(6), range(6), range(6), range(6), range(6)], columns=['a', 'b', 'c', 'd', 'e', 'f'])
df
#   a  b  c  d  e  f
#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
#5  0  1  2  3  4  5

n = 2
df.columns[len(df.columns) - n:]
#Index([u'e', u'f'], dtype='object')

答案 1 :(得分:0)

切片索引必须为int,请尝试以下操作:

length = int(len(rec_df.columns)/2)
print(length)
selection = rec_df.columns[-length:]
print(selection)