首先,我必须通过运行以下命令导入一些数据:
from eliteprospect import eliteprospect_scraper as ep
import numpy as np
import pandas as pd
nhl_2020 = ep.getPlayers('nhl', '2019-20')
players = pd.concat([nhl_2020])
lakings = players.loc[players['team'] == 'Los Angeles Kings']
lakingsdefs = lakings.loc[lakings['fw_def'] == 'DEF']
lakingsdefs_pos = lakingsdefs[['playername','position']]
##print(lakingsdefs_pos)
然后,我最终使用 Pandas 创建了一个非常简单的数据框,如下所示:
playername position
178 Drew Doughty D
295 Sean Walker D
382 Matt Roy D
403 Ben Hutton D
554 Kurtis MacDermid D
632 Joakim Ryan D
743 Mikey Anderson D
758 Paul LaDue D
859 Tobias Björnfot D
876 Kale Clague D
我尝试了以下代码来挑选出“Joakim Ryan”。
print(lakingsdefs_pos.loc[lakingsdefs_pos['playername'] == 'Joakim Ryan'])
不幸的是,它没有挑选出包含“Joakim Ryan”的那一行。
另一方面,当我用“位置”尝试同样的事情时,它似乎确实有效。
print(lakingsdefs_pos.loc[lakingsdefs_pos['position'] == 'D'])
只需打印出整个列表即可。
我希望输出如下内容:
playername position
632 Joakim Ryan D
答案 0 :(得分:2)
让我们试试.str.contains()
方法;
lakingsdefs_pos[lakingsdefs_pos['playername'].str.contains('Joakim Ryan')]#If you only have the two columns
lakingsdefs_pos.loc[lakingsdefs_pos['playername'].str.contains('Joakim Ryan'),['playername','position']]#If you have other columns other than position and playername
playername position
632 Joakim Ryan D