pandas中的sort_values()方法

时间:2017-02-27 03:56:01

标签: python python-3.x sorting pandas

我有以下数据子集,我需要按升序对Education列进行排序;来自0 to 17

enter image description here

我尝试了以下代码但没有成功。

suicide_data.sort_index(axis=0, kind='mergesort')

...也

suicide_data.Education.sort_values()

和...

suicide_data.sort_values('Education')

这是我得到的错误......

TypeError: '>' not supported between instances of 'float' and 'str'

文档说str可以使用sort_values()方法排序。有谁知道如何按升序对Education列进行排序?

2 个答案:

答案 0 :(得分:16)

看起来您必须在DataFrame的Education列中包含混合类型。错误消息告诉您它无法比较列中的字符串。假设您想要以数字方式对值进行排序,可以将它们转换为整数类型,然后将转换为排序。无论如何,我建议你这样做,因为混合类型对于DataFrame中的任何操作都不会太有用。然后使用DataFrame.sort_values

suicide_data['Education'] = suicide_data['Education'].astype('int')
suicide_data.sort_values(by='Education')

值得指出的是你的第一次尝试,

suicide_data.sort_index(axis=0, kind='mergesort')

会根据您不想要的索引和第二次尝试对您的DataFrame进行排序

suicide_data.Education.sort_values()

只返回已排序的系列 - 它们是完全无效的方法。

答案 1 :(得分:1)

suicide_data['Education'].sort_values('Education', ascending = 'True')