熊猫从Int64Index转换为RangeIndex

时间:2019-02-09 05:06:14

标签: python pandas indexing

我串联了三个数据框。如何在RangeIndex中打印df.index,而不是Int64Index?

我的输入

df = pd.concat([df1, df2, df3])
print(df.index)

我的输出

Int64Index([    0,     1,     2,     3,     4,     5,     6,     7,     8,
                9,
            ...
            73809, 73810, 73811, 73812, 73813, 73814, 73815, 73816, 73817,
            73818],
           dtype='int64', length=495673)

所需的输出

RangeIndex(start=X, stop=X, step=X)

2 个答案:

答案 0 :(得分:2)

您可以使用reset_index获取所需的索引。例如:

df = pd.concat([df1,df2,df3])
df.index

Int64Index([0, 1, 2, 0, 1, 2, 0, 1, 2], dtype='int64')

重置索引后:

df.reset_index(inplace=True)
df.index

RangeIndex(start=0, stop=9, step=1)

另外,最好在axis函数中使用concat关键字。

答案 1 :(得分:1)

您可以使用内置的ignore_index选项:

df = pd.concat([df1, df2, df3],ignore_index=True)
print(df.index)

来自文档:

  
    

ignore_index:布尔值,默认为False     如果为True,则不要沿串联轴使用索引值。结果轴将标记为0,…,n-1。如果要串联对象时,串联轴没有有意义的索引信息,这将很有用。请注意,联接中仍会考虑其他轴上的索引值。