有没有一种方法可以按数字字符串列对熊猫数据框进行排序?

时间:2020-07-15 12:19:39

标签: python pandas dataframe sorting

假设我的数据框df如下

value_id = ['1_1', '1_2', '1_5', '10_1', '2_2', '3_2']
value_age = [28, 34, 54, 24, 12, 56]
df = pd.DataFrame({'id':value_id, 'age':value_age})

我想根据第一列(即id)对该数据框进行排序。我想要这样的输出

id     age
1_1    28
1_2    34
1_5    54
2_2    12
3_2    56
10_1   24

1 个答案:

答案 0 :(得分:4)

您可以将id设置为索引,并使用df.reindex,并将sorted与自定义key参数一起使用。

def f(x):
    v, v1 = map(int, x.split('_'))
    return v, v1

df.set_index('id').reindex(sorted(df.id,key=f))

      age
id
1_1    28
1_2    34
1_5    54
2_2    12
3_2    56
10_1   24