我有以下数据框:
(Index) sample reads yeasts 9 CO ref 10 10 CO raai 20 11 CO tus 30
我想根据sample预期的输出更改列的顺序:
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
nan
我也尝试过:
df.index=["CO ref","CO tus","CO raai"]
这样可以正确更改索引,但其他列不会切换,因此会弄乱数据框。
也:
df["sample"].index=["CO ref","CO tus","CO raai"]
但这无济于事。
我该如何工作?
对于reindex需要创建索引sample列:
reindex
df=df.set_index(['sample']).reindex(["CO ref","CO tus","CO raai"]).reset_index()
或使用有序分类:
cats = ["CO ref","CO tus","CO raai"] df['sample'] = pd.CategoricalIndex(df['sample'], ordered=True, categories=cats) df = df.sort_values('sample')