pandas Python-基于列表排列 Dataframe ,但保留当前索引

ttp71kqs  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(120)

我有一个数据框和一个序列。我想在不改变数据框当前索引的情况下,根据序列排列数据框
下面是我的努力,但它完全改变了索引。我如何修复此代码?

import pandas as pd
import numpy as np
import random
data =pd.DataFrame({
    'Flight':[1,2,3,4,5,6],
    'Country':['Laos','US','UK','Aus','Sing','Malay'],
})
sequenceList=np.random.permutation(data['Flight'].values.tolist())
data.loc[sequenceList]
c0vxltue

c0vxltue1#

如果我理解正确的话,你想在保持索引的同时打乱行。使用samplefrac=1ignore_index=True

out = data.sample(frac=1, ignore_index=True)

或者,您的方法的修复将是:

out = data.loc[np.random.permutation(data.index)].set_axis(data.index)

输出:

Flight Country
0       4     Aus
1       2      US
2       5    Sing
3       6   Malay
4       3      UK
5       1    Laos

相关问题