我有一个df
,我试图在其中选择列的最后一半(由于列数可变,因此无法选择按列标签进行选择)。
length = len(rec_df.columns)
print(length)
selection = rec_df.columns[-length/2:]
print(selection)
很显然,当我打印length
时,我得到6
,但是使用length
变量进行索引时却出现错误。
但是,如果我只是更改-length/2:
-> -3:
,它就可以工作。怎样才能对变量length
起作用?
感谢您的帮助
答案 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)