按列名称处理熊猫数据框值

murtourpo95

对于我的pandas数据框,我想将所有值转换为值本身和列名称的元组,例如,“ x”列中的“ a”值将变为(a,x)。我还没有遇到过这样做的体面方法。对于数据框df df [column]确实给出了列的名称,我无法检索到它。

总体而言,这与一个较大的问题有关,我也无法解决,如果有某种方法可以做到这一点,请告诉:我有一个测试回合的数据框,各列是参与者测试的价值,即参与者在测试中的分数。

例如:

       John Mary Peter
  1    9      3      3
  2    0      8      5
  3    3      1      4

我想将其组织成一个numpy数组,其中名称按测试中的分数排序,即

[[约翰·玛丽·彼得] [玛丽·彼得·约翰] [彼得·约翰·玛丽]]

有任何想法吗?

耶斯列尔

使用numpy.argsort降序排列位置,然后使用转换为numpy数组的列名进行广播:

arr = df.columns.values[(-df.values).argsort(axis=1)]
print (arr)
[['John' 'Mary' 'Peter']
 ['Mary' 'Peter' 'John']
 ['Peter' 'John' 'Mary']]

要么:

arr = df.columns.values[df.values.argsort(axis=1)[:, ::-1]]
print (arr)
[['John' 'Peter' 'Mary']
 ['Mary' 'Peter' 'John']
 ['Peter' 'John' 'Mary']]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章