列克斯分类熊猫系列/dataframe



嗨,我有一个数据框,该数据框具有以下值

{1,20,21,10,100,1000,30}

我需要将输出排序为{1,10,100,1000,20,21,30}

最好的方法是什么,我有上述格式的20000多个值。

我尝试了sort_values,但没有帮助。

谢谢

给定一系列形式:

s
0       1
1      20
2      21
3      10
4     100
5    1000
6      30
dtype: int64

要列出本系列,您需要先铸造字符串,然后然后调用 sort_values

s.astype(str).sort_values()
0       1
3      10
4     100
5    1000
1      20
2      21
6      30
dtype: object

在数据框架的情况下,您必须做类似的事情:

df['Col'] = df['Col'].astype(str)
df.sort_values(subset=['Col'])
df['Col'] = pd.to_numeric(df['Col'])

作为对此的改进,我建议Argsort执行该任务,然后使用iloc进行一些索引。

idx = df['Col'].astype(str).argsort()
df = df.iloc[idx]

使用这种方法,您不必在sort_values调用之前坚持演员。

最新更新