我想对列进行重新排序,然后选择所需的列。
例如,如果列名A
,B
,C
,和D
。
我知道简单的方法是:
# Python
df = df[['D', 'C', 'A', 'B']]
但是,如果有多个列(例如超过100个变量),则此方法确实不好。我找到了答案。
# Python
cols_to_order = ['D', 'C']
new_columns = cols_to_order + (df.columns.drop(cols_to_order).tolist())
df= df[new_columns]
但是以上内容并不是很灵活。
在中R
,使用subset()
是一个很好的选择,可以同时对列进行重新排序和子集。
# R
df = subset(df, select = c(4, 3 , 1, 2))
如果有很多列,我们还可以subset()
用来重新排序和删除:
# R
# Multiple columns
# Drop columns 51 to 54
df = subset(df, select = c(4, 3 , 1:2, 5:50, 55:100))
有类似的功能Python
吗?
您有numpy np.r_
作为python等效于连接的索引和slice对象的子集。与相似subset(df, select = c(4, 3 , 1:2, 5:50, 55:100))
,您可以执行以下操作:
df.iloc[:, np.r_[4, 3, 1:2, 5:50, 55:100]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句