如何按列表的第二个元素对 Python DataFrame 进行排序

benduvi20

所以标题有点令人困惑,但本质上,我有一个包含两列的数据框,一列用于字符(“c”),另一列用于字符的坐标(“loc”)。我想按 Y 坐标对数据框进行排序。到目前为止,我已经设法使用 sort_values() 函数按 X 坐标对数据框进行排序:

df = pd.DataFrame({"c":["i", "a"," d","m"], "loc":[[1, 2], [3, 3], [4, 2], [3,5]]})
df.sort_values(by=["loc"], inplace=True)

输出:

    c   loc
0   i  [1, 2]
1   a  [3, 3]
3   m  [3, 5]
2   d  [4, 2]

我的目标输出是:

    c   loc
0   i  [1, 2]
2   d  [4, 2]
1   a  [3, 3]
3   m  [3, 5]

循环遍历数据帧并反转 y 和 x 值不是一种选择,因为完整的数据帧将非常大。我确实认为这应该是可能的,因为 pd.df.sort_values() 的新版本有一个“键”输入(链接到 pd.df.sort_values() 文档),但我对“键”输入不够熟悉正确执行此操作。

斯科特·波士顿

使用key参数sort_values

df.sort_values(by ='loc', key=lambda x: x.str[1])

输出:

    c     loc
0   i  [1, 2]
2   d  [4, 2]
1   a  [3, 3]
3   m  [3, 5]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按子列表python中第二个元素的长度对列表进行排序

Python 。如果第二个元素相等,如何对子列表的元素进行排序 按第一个元素对子列表进行排序

如何在 Python 中按升序对第一个变量、按自定义顺序的第二个变量和降序的第三个变量对 Python 中的 DataFrame 进行排序

如何使用python中的第二个键对对列表进行排序?

如何按第二个元组元素对元组列表进行排序?

Python-按对象属性对列表进行排序,并按第二个列表提供的顺序进行排序...是否可以改进?

按Swift中的第二个元素对列表列表进行排序?

如何创建按第二个元素排序和分组的成对列表的列表?

按元组的第二个元素和绝对值对元组列表进行排序

如何在不使用lambda的情况下按第二个元素对列表进行排序?

使用Python与第二个列表进行比较后,无法追加两个连续的列表元素

如何基于列表中元组的第二个元素的总和对列表进行排序?

如何按第二个单词对列表进行排序?

在Haskell中按第一个元素然后第二个元素对元组列表进行排序

Python按第一个元素的最大值,然后第二个元素的最小值排序

如何对列表进行排序,同时重新排序第二个列表?

根据第二个列表中的元素对列表进行排序和过滤

如何在Python中按日期对DataFrame进行排序?

根据第二个键对列表进行排序

按第二个元素的平均值对元组进行排序

按第二个值对嵌套列表进行排序

按第二个值对字典列表进行排序

如何在C ++中基于第二个元素以降序对对列表进行排序

python访问列表的第二个元素

如何从python硒中的Web元素列表中单击第二个元素?

追加新元素时,使列表列表按第二个元素排序的好方法吗?

如何根据对的第二个元素对 STL c++ 中的对集进行排序?

合并第二个元素相同的python子列表并返回总和和第二个元素

如何对列表列表进行排序,并仅保留每个第一个元素的最大第二个元素?