pandas dataframe loc 无法识别正确的名称
pandas dataframe loc failing to identify correct name
首先,我必须通过以下 运行 导入一些数据:
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' 的行。
另一方面,当我用 'position,' 尝试同样的事情时,它似乎确实有效。
print(lakingsdefs_pos.loc[lakingsdefs_pos['position'] == 'D'])
只是打印出整个列表,这是应该的。
我希望输出如下内容:
playername position
632 Joakim Ryan D
让我们试试.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
首先,我必须通过以下 运行 导入一些数据:
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' 的行。
另一方面,当我用 'position,' 尝试同样的事情时,它似乎确实有效。
print(lakingsdefs_pos.loc[lakingsdefs_pos['position'] == 'D'])
只是打印出整个列表,这是应该的。
我希望输出如下内容:
playername position
632 Joakim Ryan D
让我们试试.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