我有以下数据帧:
(Index) sample reads yeasts
9 CO ref 10
10 CO raai 20
11 CO tus 30
我想根据sample
更改列的顺序,预期输出:
(Index) sample reads yeasts
9 CO ref 10
11 CO tus 30
10 CO raai 10
我对行的索引不感兴趣
我根据其他stackoverflow/google帖子尝试了以下代码:
df=df.reindex(["CO ref","CO tus","CO raai"])
这会正确地更改索引,但所有其他列都会获得值nan
我也试过:
df.index=["CO ref","CO tus","CO raai"]
这会正确地更改索引,但其他列不会切换,因此会弄乱数据帧
此外:
df["sample"].index=["CO ref","CO tus","CO raai"]
但这没有任何作用
我怎样才能让它工作
对于
reindex
,需要从sample
列创建索引:或使用有序分类:
耶斯雷尔的解决方案当然是正确的,而且很可能是最快的。但由于这实际上只是一个重构数据帧的问题,我想向您展示如何轻松地做到这一点,同时让您的过程选择要使用的排序列的子集
以下非常简单的函数将允许您指定数据帧的子集和顺序:
下面是一个使用plotly express中的iris数据集的示例
df['species'].unique()
将显示该列的顺序:输出:
现在,使用上面的函数运行下面的完整代码段将为您提供一个新的指定顺序。不需要分类变量或篡改索引
使用数据示例完成代码:
输出:
相关问题 更多 >
编程相关推荐