【问题标题】:Dataframe.loc returns dictionary or a Dataframe [Solved] (Cannot handle a non-unique multi-index!)Dataframe.loc 返回字典或 Dataframe [已解决](无法处理非唯一的多索引!)
【发布时间】:2022-06-16 20:10:25
【问题描述】:

我有两个数据帧正在使用 pd.read_csv() 从两个几乎相同的 .csv 文件中读取。

当我在其中一个上使用 .loc[index1] 时,它会返回一个字典,例如: col1 val1 col2 val2 col3 val3 名称:(index1),数据类型:对象

但是我意识到它实际上返回了一个数据框。一些操作如df1[col1] = df2[col2] + constant会报错。

为了让它更难,我实际上使用了 MultiIndex。我收到此错误: Cannot handle a non-unique multi-index!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    我发现 .loc 返回一个 Dataframe 或一个类似字典的对象,具体取决于是否有重复的索引。 pandas 文档中没有说明这种情况,或者我没有找到。

    如果索引实际上是唯一的,请尝试使用以下代码中的某些内容: df.reset_index().drop_duplicates(subset=["index1"]).set_index(["index1"]) 或者只是df.drop_duplicates(subset=["index1"]) 在读取 csv 之后但在设置索引之前

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      • 2022-07-26
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多