子集列和重新排序

彼得·陈:

我想对列进行重新排序,然后选择所需的列。
例如,如果列名ABC,和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吗?

yatu:

您有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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

INSERT INTO with SELECT(仅列和列排序的子集)

Flexbox:重新排序和堆叠列

使用Excel公式对列进行排序和重新排序

如何根据其他矩阵的行名称对矩阵进行子集化和重新排序

避免重新排序热图中的行和列 (r)

将数据重新排序为“从”和“到”列

重新排序字符类数据框列和绘图

ObjectListView列重新排序

在python pandas中应用样式后,如何删除和重新排序(重新索引)列?

jqgrid FrozenColumns +(非冻结列的单元格编辑和可排序/重新排序)

对列的子集进行排序以匹配行的条件

根据行的子集对r中的因子重新排序

ConcurrentSkipListSet和重新排序(java)

转置和重新排序

重新排列和排序

R重新排序许多列

重新排序CSV中的列

将 CSV 文件中每列的 xmin、xmax、ymin 和 ymax 重新排序为新列

列中的重新排序(重新排序)返回 false

对熊猫数据框中的行子集进行重新排序(重新索引)

按所有列的子集对Datatables列进行排序

Pandas df根据整数索引列表对行和列进行重新排序

使用 lapply 采样数据框,包括新列和重新排序列

如何对函数内创建的相关矩阵的行和列进行重新排序

在格式化的“会计期间”列中重新排序月份和年份

使用开始和结束列将数据重新排序为连续序列

使用混合的元组和字符串列对pandas DataFrame列重新排序

通过转置和设置来自其他列的值(Pandas)重新排序 Dataframe

通过重新排列行和列对二维表进行排序