我实际上是在使用某人的代码来学习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的新手,所以我真的不知道如何替换它,甚至一开始它所做的事情。希望得到新手的答案。
答案 0 :(得分:1)
is_duplicate
不一定是熊猫的方法名称。
它似乎是对具有该名称的列的引用。
在.values
之后查看。似乎证实了我的假设:
values
属性,即尝试将其转换为
它的 Numpy 表示形式(我碰到一个警告,说应该
请使用to_numpy()
函数。)也许您应该根据现有数据“重新创建”此列。 为此,请尝试找出您DataFrame的哪些列标识 作为唯一实体的行。然后致电:
df['is_duplicate'] = df.duplicated([<a_list_of_columns>])
,您将缺少一列。
当然,您应该弄清楚是否要查找所有重复项
或除了第一个实例以外的所有实例(有一个相关的参数
duplicated
函数。
另一种查找路径:检查您的DataFrame,也许它已经包含一列
名称中带有相似名称并且is_duplicate
的是拼写错误的版本
适当的列名称的名称。