需要替换熊猫中已弃用和删除的API

时间:2019-02-21 13:10:03

标签: python pandas

我实际上是在使用某人的代码来学习NLP,并且在尝试运行其代码时遇到此错误:

File "ls-dlm.py", line 23, in <module>
    y = data.is_duplicate.values
  File "/Users/Abhishek/Projects/Python-Projects/Python-VEs/Log-Similarity/lib/python3.7/site-packages/pandas/core/generic.py", line 5067, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'is_duplicate'

代码

data = pd.read_pickle("data/log_dataset.pkl")
y = data.is_duplicate.values
ytrain_enc = np_utils.to_categorical(y)

很显然,is_duplicate方法已不存在,我试图从熊猫的档案和旧文档中挖掘一些信息,但是空手而归。

有人可以解释一下此方法的作用,以及如何用Pandas版本中的最新API替换它吗?

非常感谢您的帮助。

P.S:我也是Pandas的新手,所以我真的不知道如何替换它,甚至一开始它所做的事情。希望得到新手的答案。

1 个答案:

答案 0 :(得分:1)

is_duplicate不一定是熊猫的方法名称。 它似乎是对具有该名称的的引用。

.values之后查看。似乎证实了我的假设:

  • 程序实际上尝试查找具有该名称的 (属于 Series 类型)
  • 然后它引用values属性,即尝试将其转换为 它的 Numpy 表示形式(我碰到一个警告,说应该 请使用to_numpy()函数。)

也许您应该根据现有数据“重新创建”此列。 为此,请尝试找出您DataFrame的哪些列标识 作为唯一实体的行。然后致电:

df['is_duplicate'] = df.duplicated([<a_list_of_columns>])

,您将缺少一列。

当然,您应该弄清楚是否要查找所有重复项 或除了第一个实例以外的所有实例(有一个相关的参数 duplicated函数。

另一种查找路径:检查您的DataFrame,也许它已经包含一列 名称中带有相似名称并且is_duplicate的是拼写错误的版本 适当的列名称的名称。