Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫丢弃“U重复项();保留;参数给出了非常不同的答案-它是如何工作的?_Python_Pandas - Fatal编程技术网

Python 熊猫丢弃“U重复项();保留;参数给出了非常不同的答案-它是如何工作的?

Python 熊猫丢弃“U重复项();保留;参数给出了非常不同的答案-它是如何工作的?,python,pandas,Python,Pandas,我有一个参加奥运会运动员的CSV数据集 这些特征包括:身份证、姓名、性别、年龄、游戏、年份、运动 我需要找到: 男性篮球运动员在所有男性运动员中所占的百分比是多少 2012年奥运会的参与者?把答案四舍五入到第一题 十进制 一个运动员可以参加各种形式的比赛,所以有重复的 我使用不带“keep”参数的代码进行查询: males_2012 = data[ (data['Sex']=='M') & (data['Year']==2012)].drop_duplicates(subse

我有一个参加奥运会运动员的CSV数据集

这些特征包括:身份证、姓名、性别、年龄、游戏、年份、运动

我需要找到:

男性篮球运动员在所有男性运动员中所占的百分比是多少 2012年奥运会的参与者?把答案四舍五入到第一题 十进制

一个运动员可以参加各种形式的比赛,所以有重复的

我使用不带“keep”参数的代码进行查询:

    males_2012 = data[   (data['Sex']=='M') & (data['Year']==2012)].drop_duplicates(subset=['ID',],inplace=False)
    len(males_2012) # gives 5863 
但是,如果我使用“keep=False”进行查询,它会给我提供更小的数据集:

官方drop重复了参数“keep”的解释:

保留:{'first','last',False},默认的'first'first:Drop

除第一次出现外,重复项。最后:删除重复项

除了最后一次。False:删除所有重复项


我找到了正确的答案,但是我仍然不明白为什么它根据“keep=False”参数给出了非常不同的答案。

keep定义了要保留的重复值

1) First指定保留第一个重复值并删除其余值

2) Last指定保留最后一个重复值并删除其余值

3) False指定删除所有重复项

举个例子:

df = pd.DataFrame({'A': [1,1,1,1]})

print(df.drop_duplicates(keep='first'))
print(df.drop_duplicates(keep='last'))
print(df.drop_duplicates(keep=False))
这些产出是:

   A
0  1
   A
3  1
Empty DataFrame
Columns: [A]
Index: []

我们可以在第一个df中看到,元素保留在索引0处,因此它是第一个元素。第二个df的索引为3,因此它是最后一个元素。最后一个df没有数据,因为整个列都是重复的,所以全部被删除。

您的问题不清楚。什么曲子让你困惑?如果不传入参数,则默认情况下保留第一条记录。如果传入
False
,则它不会保留任何记录。计数的差异应该是这两个数字之间的差异。不是这样吗?
keep=False
删除所有重复项。例如,如果您有两行具有相同的值,
keep=False
将同时删除这两行,而其他两个选项将保留一个.ohh,因此如果我有3个ID且keep=False,它将删除所有3行,并且在数据集中不保留任何内容?复制我的数据集,只需添加具有重复值的列
B
C
,然后尝试一下:P
   A
0  1
   A
3  1
Empty DataFrame
Columns: [A]
Index: []