假设我的数据框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
答案 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