如何将索引列转换为数字?

3

我有一个数据框,其索引行是字符串数据类型。我希望它是数字且已排序:

  col1 col2
1  25   33
3  35  544
2  24   52

预期结果:

  col1 col2
1  25   33
2  24   52
3  35   544
2个回答

5

首先,使用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,或者将其传递到管道中。


1
您可以使用astypesort_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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接