我想根据另一列对一列进行排序。 我不知道如何在使用pandas的python中做到这一点。
基本上我想建议按降序推荐测试列 这就是我的数据框:
]
这是我试图做的。 按测试列分组然后对计数列进行排序,但它不起作用。
我的代码::
final.groupby(['test'])
final.sort_values(['count'], ascending=False)
这正是我想要的。
答案 0 :(得分:0)
您可以使用sort_values:
//Number of Cubs
$cubs = rand(1,4);
//GENDER
for ($x = 0; $x < $cubs; $x++) {
$gender = rand(1,2);
if ($gender == 1) {
$cubgender = "Male";
} elseif ($gender == 2) {
$cubgender = "Female";
}
//COAT COLOR
$genome = "ss/ee/ff/Nn/oo/Pa/Sr/So";
$gepieces = explode("/", $genome);
$fenome = "ss/Ee/ff/nn/oo/Pa";
$fepieces = explode("/", $fenome);
if ($gepieces[0] === $fepieces[0]) {
$ss = $gepieces[0];
} else {
$ss = rand(1,2);
if ($ss == 1) {
$ss = $gepieces[0];
} else {
$ss = $fepieces[0];
}
}
if ($gepieces[1] === $fepieces[1]) {
$ee = $gepieces[1];
} else {
$ee = rand(1,2);
if ($ee == 1) {
$ee = $gepieces[1];
} else {
$ee = $fepieces[1];
}
}
if ($gepieces[2] === $fepieces[2]) {
$ff = $gepieces[2];
} else {
$ff = rand(1,2);
if ($ff == 1) {
$ff = $gepieces[2];
} else {
$ff = $fepieces[2];
}
}
if ($gepieces[3] === $fepieces[3]) {
$nn = $gepieces[3];
} else {
$nn = rand(1,2);
if ($nn == 1) {
$nn = $gepieces[3];
} else {
$nn = $fepieces[3];
}
}
if ($gepieces[4] === $fepieces[4]) {
$oo = $gepieces[4];
} else {
$oo = rand(1,2);
if ($oo == 1) {
$oo = $gepieces[4];
} else {
$oo = $fepieces[4];
}
}
echo $cubgender." - ".$ss."/".$ee."/".$ff."/".$nn."/".$oo."<br/>";
}
示例:
final.assign(sortkey = df.test.apply(list).str[0])\
.sort_values(by=['sortkey','count'], ascending=[True, False])\
.drop('sortkey', axis=1)
输出:
df = pd.DataFrame({'test':np.random.choice([{'Test1'},{'Test2'},{'Test3'}], 30),'count':np.random.randint(1000,5000, 30)})
df_out = df.assign(sortkey = df.test.apply(list).str[0])\
.sort_values(by=['sortkey','count'], ascending=[True, False])\
.drop('sortkey', axis=1)
df_out