我有以下数据子集,我需要按升序对Education
列进行排序;来自0 to 17
。
我尝试了以下代码但没有成功。
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
列进行排序?
答案 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')