【问题标题】:I'm getting the following error message: ValueError: cannot reindex from a duplicate axis我收到以下错误消息:ValueError: cannot reindex from a duplicate axis
【发布时间】:2020-06-16 06:38:00
【问题描述】:

为什么我会收到此错误消息?我的代码:

my_df.loc[my_df['col1'] < my_df['col2'],'col3'] = my_df['col1'].

基本上我要做的是在 col3 小于 col2 时将 col3 设置为等于 col1。谢谢!

【问题讨论】:

  • 因为my_df有重复的索引,而pandas不知道如何对齐它们?
  • 您能否详细说明“重复索引”的含义?您的意思是数据框的索引中有重复值吗?
  • 是的,重复 == 重复。做一个df.index.duplicated().sum()检查。
  • 你能测试吗? my_df.loc[my_df['col1'] &lt; my_df['col2'],'col3'] = my_df.loc[my_df['col1'] &lt; my_df['col2'],'col1']
  • 你能检查我的答案是否正确吗? :)

标签: python pandas valueerror


【解决方案1】:

您似乎正在尝试插入不同大小的数据。 col3 列的大小必须与 col1 相同。
试试这个:

my_df.loc[my_df['col1'] < my_df['col2'],'col3'] = my_df.loc[my_df['col1'] < my_df['col2'],'col1']

【讨论】:

    【解决方案2】:

    我通过使用 reset_index() 重置数据帧上的索引解决了这个问题。由于先前的 concat 函数,索引“混乱”了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 2018-07-14
      • 2020-06-12
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      相关资源
      最近更新 更多