数据框上的python loc问题

时间:2019-03-01 15:25:06

标签: python jupyter-notebook

我目前正在使用jupyter笔记本进行python项目。我想预测一下法国的体育馆出勤率(历史1)。

为了实现这一点,我从网上收集了漂亮的汤中的数据。我现在正尝试清理数据:我缺少一些关于体育场的值,我想为特定的球队(奥林匹亚lyonnais)分配体育场。

我首先尝试过:

stats_match.stade[(stats_match.saison >= 2017) & (stats_match.domicile == 'Olympique Lyonnais') & (stats_match.stade.isna())] = 'Groupama stadium'

给我那个错误:

  

SettingWithCopyWarning:   试图在DataFrame的切片副本上设置一个值

所以我按照指示进行了尝试,

stats_match.stade.loc((stats_match.saison >= 2017) & (stats_match.domicile == 'Olympique Lyonnais') & (stats_match.stade.isna())) = 'Groupama stadium' 

这给了我:

  

文件“”,第3行       stats_match.stade = stats_match.stade.loc((stats_match.saison> = 2017)&(stats_match.domicile =='奥林匹克里昂奥运会')&(stats_match.domicile.isna()))='Groupama体育场'
  SyntaxError:无法分配给函数调用

我在这里想念什么?我必须使用.where函数吗? 非常感谢

2 个答案:

答案 0 :(得分:1)

这应该是正确的;

stats_match.loc[(stats_match.saison >= 2017) & (stats_match.domicile == 'Olympique Lyonnais') & (stats_match.stade.isna())] = 'Groupama stadium'

答案 1 :(得分:0)

好吧,就像@roganjosh所说的,我放了()而不是[],但是我现在有同样的警告“ SettingWithCopyWarning,我已经有了这个警告,并使用了.copy(),但是有更好的方法吗?< / p>