当前位置: 首页 > 知识库问答 >
问题:

在熊猫中连接两个数据帧时发生索引错误

荀振国
2023-03-14

我得到以下错误

pandas.core.indexes.base.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

关于代码

dfp = pd.concat([df, tdf], axis=1)

我试图将tdf的列连接到df的列。

对于这些打印语句

print(df.shape)
print(tdf.shape)
print(df.columns)
print(tdf.columns)
print(df.index)
print(tdf.index)

我得到以下输出:

 (70000, 25)
 (70000, 20)
    Index(['300', '301', '302', '303', '304', '305', '306', '307', '308', '309',
           '310', '311', '312', '313', '314', '315', '316', '317', '318', '319',
           '320', '321', '322', '323', '324'],
          dtype='object')
    Index(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13',
           '14', '15', '16', '17', '18', '19', '20'],
          dtype='object')
    Int64Index([   0,    1,    2,    3,    4,    5,    6,    7,    8,    9,
                ...
                9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999],
               dtype='int64', length=70000)
    RangeIndex(start=0, stop=70000, step=1)

你知道是什么问题吗?为什么索引会成为一个问题?索引应该是相同的,因为我关注的是列,而不是行。列值似乎完全不同。

谢谢

共有1个答案

华振
2023-03-14

问题在于df不是唯一索引的。因此,您需要重置索引

pd.concat([df.reset_index(),tdf], axis=1)

或者放下它

pd.concat([df.reset_index(drop=True),tdf], axis=1)
 类似资料:
  • 我需要将两个数据帧和一个接一个地连接起来,它们具有相同的行数(),而不考虑任何键。此函数类似于

  • 我有一个csv文件列表,我使用 我目前正在尝试遍历csv列表,并使用方法将axis参数设置为1,以按列将所有数据帧添加到一起。 它是工作的希望,但我遇到的问题,因为所有的数据帧都有相同的冒号名称,当我连接他们我得到例如10列都与关键"日期" 不管怎样,我能给哥伦布起个独一无二的名字吗?比如伦敦约会,柏林约会?显然,这些名称基于数据帧的名称。

  • 你能帮我连接两个数据帧吗。 我有两个数据帧。 DF1: DF2: 我需要基于前两个数据帧创建一个数据帧,左连接两列。列index和val2在两个数据帧中具有相同的名称。df3的结果应该如下所示: 应该删除df1中不存在的df2中的索引,如果df1中的索引具有与df2中相同的val2,则应该将1添加到新的列val3中,否则:NaN。 非常感谢提前!

  • 问题内容: 我找不到关于交叉联接的任何信息,包括合并/联接或其他一些东西。我需要使用{my function}作为myfunc处理两个数据帧。相当于: 相当于: 但我需要更有效的解决方案:如果使用了应用,我将如何实现它们; ^^ 问题答案: 对于叉积,请参阅此问题。 本质上,您必须进行常规合并,但为每一行赋予相同的键以进行连接,以使每一行在框架之间相互连接。 然后可以通过应用函数将列添加到新框架:

  • 我想更改我的熊猫数据框架中的一个值,我想我误解了索引的工作方式。 我得到输出 我想将df中的值0.665873更改为1。我试过了 但我得到了错误 我试图用示例数据帧复制该问题,但无济于事。 我认为问题在于,当我使用实际数据时,我得到了一系列的输出,但当我使用实践数据时,得到了一个浮点。为什么我得到的是这个系列而不是浮点0.665873?

  • 我正在尝试连接到数据帧。它们看起来像这样 期望的最终目标是: 我一直试图使用pd.merge和。连接函数与on='外'设置不成功