Python drop“u duplicates-ValueError:keep必须为”或“;第一个“&引用;最后一句话;还是假的

Python drop“u duplicates-ValueError:keep必须为”或“;第一个“&引用;最后一句话;还是假的,python,debugging,pandas,duplicates,Python,Debugging,Pandas,Duplicates,我已经安装了熊猫17.0。我现在犯了一个奇怪的错误 ValueError:keep必须是“first”、“last”或False 当我尝试这样做时: ids=ids.drop_duplicates('ID') 这在以前的Pandas版本中一直有效,代码没有更改。顺便说一句,ids是一个包含一列整数的数据帧 以下是回溯: Traceback (most recent call last): File "<ipython-input-34-6e98a890591b>", line 1

我已经安装了熊猫17.0。我现在犯了一个奇怪的错误

ValueError:keep必须是“first”、“last”或False

当我尝试这样做时:

ids=ids.drop_duplicates('ID')
这在以前的Pandas版本中一直有效,代码没有更改。顺便说一句,ids是一个包含一列整数的数据帧

以下是回溯:

Traceback (most recent call last):

File "<ipython-input-34-6e98a890591b>", line 1, in <module>
     ids=ids.drop_duplicates('ID')

File "C:\Anaconda3\lib\site-packages\pandas\util\decorators.py",
 line 89, in wrapper
     return func(*args, **kwargs)

File "C:\Anaconda3\lib\site-packages\pandas\core\series.py", line
 1164, in drop_duplicates
     return super(Series, self).drop_duplicates(keep=keep, inplace=inplace)

File "C:\Anaconda3\lib\site-packages\pandas\util\decorators.py",
 line 89, in wrapper
     return func(*args, **kwargs)

File "C:\Anaconda3\lib\site-packages\pandas\core\base.py", line 576,
 in drop_duplicates
     duplicated = self.duplicated(keep=keep)

File "C:\Anaconda3\lib\site-packages\pandas\util\decorators.py",
 line 89, in wrapper
     return func(*args, **kwargs)

File "C:\Anaconda3\lib\site-packages\pandas\core\series.py", line
 1169, in duplicated
     return super(Series, self).duplicated(keep=keep)

File "C:\Anaconda3\lib\site-packages\pandas\util\decorators.py",
 line 89, in wrapper
     return func(*args, **kwargs)

File "C:\Anaconda3\lib\site-packages\pandas\core\base.py", line 603,
 in duplicated
     duplicated = lib.duplicated(keys, keep=keep)

File "pandas\lib.pyx", line 1383, in pandas.lib.duplicated
 (pandas\lib.c:24490)

ValueError: keep must be either "first", "last" or False
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ids=ids.drop_duplicates('ID'))
文件“C:\Anaconda3\lib\site packages\pandas\util\decorators.py”,
第89行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Anaconda3\lib\site packages\pandas\core\series.py”,第行
1164,在drop_副本中
返回超级(系列,自我)。删除重复项(保留=保留,原地=原地)
文件“C:\Anaconda3\lib\site packages\pandas\util\decorators.py”,
第89行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Anaconda3\lib\site packages\pandas\core\base.py”,第576行,
在drop\u副本中
复制=自我复制(保留=保留)
文件“C:\Anaconda3\lib\site packages\pandas\util\decorators.py”,
第89行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Anaconda3\lib\site packages\pandas\core\series.py”,第行
1169,一式两份
返回超级(系列,自我)。重复(保留=保留)
文件“C:\Anaconda3\lib\site packages\pandas\util\decorators.py”,
第89行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Anaconda3\lib\site packages\pandas\core\base.py”,第603行,
一式两份
duplicated=lib.duplicated(键,keep=keep)
pandas.lib.duplicated中的文件“pandas\lib.pyx”,第1383行
(熊猫库c:24490)
ValueError:keep必须为“第一”、“最后”或False

注意
keep=keep
?Pandas 17.0中删除重复项的默认设置是
keep='first'
。所以,如果我不指定,它不应该默认为该值吗?为什么我会在这里出错?熊猫17.0中的错误?

该错误表明
ids
实际上是一个
系列,其中第一个参数是参数,如果
ids
确实是一个df,那么这个错误就不会发生,因为第一个参数是
子集

我尝试了语法(使用
keep
),以前是
take\u last

import pandas as pd
df = pd.DataFrame({'c1': ['cat'] * 3 + ['dog'] * 4,
                   'c2': [1, 1, 2, 3, 3, 4, 4]})

print(df)
print(df.drop_duplicates())   
print(df.drop_duplicates(['c1', 'c2'],keep='first'))   
print(df.drop_duplicates(['c1', 'c2'],keep='last'))   
print(df.drop_duplicates(['c1', 'c2'],keep=False))   #drops all but one cat stays

默认情况下,
drop_duplicates()
keep='first'
和所有列。

您的回溯表明
ids
是一个
系列
类型(ids)
显示了什么?哇,太快了。谢谢Ed我很不好意思错过了这个。17年是否发生了可能导致此错误的变化?我的错误是这是一个系列。非常感谢。。。如果他们允许,我会在10分钟内接受答案!这是在向下滚动一点以获得
drop\u duplicates