如何使用忽略前缀对数据框进行排序?

时间:2018-02-21 13:45:09

标签: python pandas dataframe data-structures

我可以按列对数据进行排序:

df.sort(columns='sort_index', inplace=True)

我可以忽略前缀这样对数组进行排序:

array.sort(key=lambda element: re.sub(re, "", element))

但是如何使用忽略前缀对数据框进行排序?

1 个答案:

答案 0 :(得分:2)

我认为您需要str.replace argsort索引,然后按iloc选择重新排序行:

df = pd.DataFrame({
    'B': list(range(9)), 
}, index=['1s','2d','2a','1c','22d','1b','2b','1c','4d'])
print (df)
     B
1s   0
2d   1
2a   2
1c   3
22d  4
1b   5
2b   6
1c   7
4d   8

idx = df.index.str.replace('\D+', '').astype(int).argsort()
df = df.iloc[idx]
print (df)
     B
1s   0
1c   3
1b   5
1c   7
2d   1
2a   2
2b   6
4d   8
22d  4