当前位置: 首页 > 面试题库 >

串联后pandas重新计算索引

齐航
2023-03-14
问题内容

我有一个问题,我通过沿行轴串联(垂直堆叠)来生成熊猫数据框。

每个组成数据帧都有一个自动生成的索引(升序编号)。

串联后,我的索引被搞砸了:它的计数最多为n(其中n是相应数据帧的shape [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


 类似资料:
  • 问题内容: 给定一个数据帧字典,例如: 其中每个数据框具有相同的列和相似的索引,例如: 最简单的方法是将所有数据帧组合成一个,并具有如下所示的多索引: 我尝试了几种方法-例如,对于每个数据框,使用多索引之类替换列,然后将其串联,但没有成功。 问题答案: 您可以使用(参数将创建层次结构列索引)执行此操作: 确实需要列表,因此以下等效:

  • 本文向大家介绍Pandas之ReIndex重新索引的实现,包括了Pandas之ReIndex重新索引的实现的使用技巧和注意事项,需要的朋友参考一下 约定: ReIndex重新索引 reindex()是pandas对象的一个重要方法,其作用是创建一个新索引的新对象。 一、对Series对象重新索引 代码结果: d    1 c    7 a    3 f    9 dtype: int64 调用re

  • 我正在尝试计算在右列中拖动的元素的总数。这是可行的,但它只是计算该列中的两个默认元素。如果我拖动新项目,总数保持不变。我做了这个小提琴:https://jsfidle.net/ehkgcnyp/ 我如何考虑新项目? 谢谢!

  • 主要内容:重置行列标签,填充元素值,限制填充行数,重命名标签重置索引(reindex)可以更改原 DataFrame 的行标签或列标签,并使更改后的行、列标签与 DataFrame 中的数据逐一匹配。通过重置索引操作,您可以完成对现有数据的重新排序。如果重置的索引标签在原 DataFrame 中不存在,那么该标签对应的元素值将全部填充为 NaN。 重置行列标签 看一组简单示例: 输出结果: 现有 a、b 两个 DataFrame 对象,如果想让 a  的行

  • 问题内容: 我正在尝试重新索引熊猫对象,像这样, 我正在如下所示进行操作,并且得到了错误的答案。有关如何执行此操作的任何线索? 知道为什么会这样吗? 问题答案: 为什么不简单地使用方法?

  • 问题内容: 我的日食没有启动,因为我的计算机有点死机了,所以我不得不强制重新启动它。当我不得不重新启动时,Eclipse是打开的,我相信这很可能是原因。我不知道该如何解决。每当我尝试打开它时,它都会告诉我检查工作区中的.log文件,并显示: http://paste.strictfp.com/26579 而且我不知道如何解决它。请帮忙? 问题答案: 您缺少 第125行的 类,您必须重新安装才能解决