微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas在连接后重新计算索引

我有一个问题,我通过沿行轴连接(垂直堆叠)生成一个pandas数据帧.

每个组成数据帧都有一个自动生成的索引(递增数字).

连接后,我的索引被搞砸了:它计数到n(其中n是相应数据帧的形状[0]),并在下一个数据帧重新开始.

我试图“重新计算索引,给定当前的顺序”,或“重新索引”(或者我认为).事实证明,这并不是DataFrame.reindex似乎正在做的事情.

这是我试图做的:

train_df = pd.concat(train_class_df_list)
train_df = train_df.reindex(index=[i for i in range(train_df.shape[0])])

失败了“无法从重复的轴重新索引”.我不想改变我的数据的顺序…只需删除旧索引并设置一个新索引,保留行的顺序.

解决方法:

垂直连接后,如果索引为[0,n)后跟[0,m],则只需调用reset_index

train_df.reset_index(drop=True)

(您可以使用inplace = True进行此操作).

import pandas as pd

>>> pd.concat([
    pd.DataFrame({'a': [1, 2]}), 
    pd.DataFrame({'a': [1, 2]})]).reset_index(drop=True)
    a
0   1
1   2
2   1
3   2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐