我有一个数据框,其索引行是字符串数据类型。我希望它是数字且已排序:
col1 col2
1 25 33
3 35 544
2 24 52
预期结果:
col1 col2
1 25 33
2 24 52
3 35 544
首先,使用pd.to_numeric
进行转换和赋值。
df.index = pd.to_numeric(df.index, errors='coerce')
要按索引对DataFrame进行排序,请调用df.sort_index
:
df.sort_index()
col1 col2
1 25 33
2 24 52
3 35 544
如果你想进行原地操作,第二个命令可以指定inplace=True
,或者将其传递到管道中。
astype
和sort_index
。In [833]: df.index
Out[833]: Index([u'1', u'3', u'2'], dtype='object')
In [834]: df.index = df.index.astype(int)
In [837]: df = df.sort_index()
In [838]: df
Out[838]:
col1 col2
1 25 33
2 24 52
3 35 544
In [839]: df.index
Out[839]: Int64Index([1, 2, 3], dtype='int64')
set_index
的单行代码。In [851]: df.set_index(df.index.astype(int)).sort_index()
Out[851]:
col1 col2
1 25 33
2 24 52
3 35 544