我可以按列对数据进行排序:
df.sort(columns='sort_index', inplace=True)
我可以忽略前缀这样对数组进行排序:
array.sort(key=lambda element: re.sub(re, "", element))
但是如何使用忽略前缀对数据框进行排序?
答案 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