熊猫数据框loc无法识别正确的名称

时间:2020-12-22 20:14:09

标签: pandas dataframe loc

首先,我必须通过运行以下命令导入一些数据:

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

1 个答案:

答案 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
相关问题