Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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 伊辛熊猫的问题_Python_Pandas - Fatal编程技术网

Python 伊辛熊猫的问题

Python 伊辛熊猫的问题,python,pandas,Python,Pandas,抱歉,我只是问了这个问题:但过早地将其标记为已回答,因为它通过了我过于简单的测试用例,但没有更普遍地工作。(如果有可能合并并重新讨论这个问题,那就太好了……) 全文如下: sum(data['Name'].isin(eligible_players)) > 0 sum(data['Name'] == "Antonio Brown") > 68 "Antonio Brown" in eligible_players > True 基本上,如果我理解正确的话,我正在证明安东尼

抱歉,我只是问了这个问题:但过早地将其标记为已回答,因为它通过了我过于简单的测试用例,但没有更普遍地工作。(如果有可能合并并重新讨论这个问题,那就太好了……)

全文如下:

sum(data['Name'].isin(eligible_players))
> 0

sum(data['Name'] == "Antonio Brown")
> 68

"Antonio Brown" in eligible_players
> True
基本上,如果我理解正确的话,我正在证明安东尼奥·布朗是合格的球员,他在数据框中。但是,由于某些原因,.isin()无法正常工作

正如我在前面的问题中所说,我正在寻找一种方法来检查多个OR以选择正确的行

____编辑____

In[14]:
eligible_players
Out[14]:
Name
Antonio Brown       378
Demaryius Thomas    334
Jordy Nelson        319
Dez Bryant          309
Emmanuel Sanders    293
Odell Beckham       289
Julio Jones         288
Randall Cobb        284
Jeremy Maclin       267
T.Y. Hilton         255
Alshon Jeffery      252
Golden Tate         250
Mike Evans          236
DeAndre Hopkins     223
Calvin Johnson      220
Kelvin Benjamin     218
Julian Edelman      213
Anquan Boldin       213
Steve Smith         213
Roddy White         208
Brandon LaFell      205
Mike Wallace        205
A.J. Green          203
DeSean Jackson      200
Jordan Matthews     194
Eric Decker         194
Sammy Watkins       190
Torrey Smith        186
Andre Johnson       186
Jarvis Landry       178
Eddie Royal         176
Brandon Marshall    175
Vincent Jackson     175
Rueben Randle       174
Marques Colston     173
Mohamed Sanu        171
Keenan Allen        170
James Jones         168
Malcom Floyd        168
Kenny Stills        167
Greg Jennings       162
Kendall Wright      162
Doug Baldwin        160
Michael Floyd       159
Robert Woods        158
Name: Pts, dtype: int64

(旁白:一旦发布了实际使用的内容,只需几秒钟就可以看到问题。)

Series.isin(something)
迭代
something
,以确定要测试其成员资格的内容集。但是你的
合格玩家
不是一个列表,而是一个系列。而对一个系列的迭代就是对值的迭代,即使成员资格(中的
)与索引有关:

In [72]: eligible_players = pd.Series([10,20,30], index=["A","B","C"])

In [73]: list(eligible_players)
Out[73]: [10, 20, 30]

In [74]: "A" in eligible_players
Out[74]: True
因此,在您的情况下,您可以使用
合格的\u players.index
来传递正确的姓名:

In [75]: df = pd.DataFrame({"Name": ["A","B","C","D"]})

In [76]: df
Out[76]: 
  Name
0    A
1    B
2    C
3    D

In [77]: df["Name"].isin(eligible_players) # remember, this will be [10, 20, 30]
Out[77]: 
0    False
1    False
2    False
3    False
Name: Name, dtype: bool

In [78]: df["Name"].isin(eligible_players.index)
Out[78]: 
0     True
1     True
2     True
3    False
Name: Name, dtype: bool

In [79]: df["Name"].isin(eligible_players.index).sum()
Out[79]: 3

请做一个测试,这样其他人可以确认问题(我们可以验证这不仅仅是
合格的玩家
发生了某种变化或其他琐碎的事情。)是的,就是上面提到的,在我的玩具中,这是完美的fine@DSM我试图在我之前的问题中创建一个最小的、完整的、可验证的示例,我将其链接到,它奏效了,所以我接受了答案。当在我的实际数据上运行它时,它不起作用,所以我在寻找问题的根源…@qwertylpc:你之前的问题不包含MCVE。任何人都无法复制和粘贴任何内容来查看您面临的问题。@DSM我添加了部分数据帧和符合条件的\u players我也有同样的问题,但有一个列表,而不是一个系列。你怎么认为?
In [75]: df = pd.DataFrame({"Name": ["A","B","C","D"]})

In [76]: df
Out[76]: 
  Name
0    A
1    B
2    C
3    D

In [77]: df["Name"].isin(eligible_players) # remember, this will be [10, 20, 30]
Out[77]: 
0    False
1    False
2    False
3    False
Name: Name, dtype: bool

In [78]: df["Name"].isin(eligible_players.index)
Out[78]: 
0     True
1     True
2     True
3    False
Name: Name, dtype: bool

In [79]: df["Name"].isin(eligible_players.index).sum()
Out[79]: 3