Pandas刚刚发生的事情让我更加信任它,有谁知道它为什么会这样?无论如何,对于这个小例子很容易看到,但是对于更大的数据帧,人们需要注意..我几乎犯了一些错误。
df = pd.DataFrame({"A":[34,12,78,84,26], "B":[54,87,35,81,87], "C":[56,78,0,14,13], "D":[0,87,72,87,14], "E":[78,12,31,0,34]})
>> df
然后,如果你找到一个不存在的列:
df['b']
KeyError: 'b'
但是 -
df.drop_duplicates(['b', 'D'])
...运行没有错误,并在D列中找到错误。
实际上,df.drop_duplicates(['D'])
会产生完全相同的结果。
它错过了一个重复的行但是在B列中也错过了一行,因为它拼写错误。它不会警告您或引发错误。
使用Pandas 0.22.0和Python 3.6.4。
df.drop_duplicates(['B','D'])
只返回原始数据帧而不丢弃任何内容。我错过了什么或熊猫破了吗?
答案 0 :(得分:1)
Pandas版本0.20.3 python 3.6。
当我运行这行代码时:
df.drop_duplicates(['b', 'D'])
有
KeyError:'b'
在你的例子中,第4行是奇怪的情况。
首先
df.loc[4,'B'] = 87
删除后重复:
df.loc[4,'B'] = 82
看起来你在这些步骤之间有一些额外的操作。