数据框未使用新值正确更新

时间:2019-01-04 14:41:09

标签: python pandas

我有一个名为rawReturn的大型数据框,看起来像:

      Identifier        Entry Date  Route to current team   concatenated
0          12884    ..  01/01/2012               TRANSFER    SMITHROBERT
1          10604    ..  04/07/2013               EXTERNAL       JONESAMY
2          14445    ..  16/07/2018               EXTERNAL    EVANSSTEVEN
3           7898    ..  03/09/2010                   LOAN       HILLEMMA
:              :    ..           :                      :              :
34578      10487    ..  01/07/2012               TRANSFER     DENSMARCUS
34579      13016    ..  02/06/2014               EXTERNAL     WHITECHRIS
34580      12885    ..  09/08/2016                   LOAN     COLESDAVID
34581               ..  05/08/2014               EXTERNAL      KINGHELEN

我还有另一个名为df的数据框,其中有一些更新我希望应用于rawReturn数据框。在下面的示例中,我尝试使用以下Route to current team数据帧将其更新为df列:

    Identifier  Surname First Name(s)   Route to current team   concatenated
0        10604    JONES           AMY                    LOAN       JONESAMY
1        12885     KING         HELEN                TRANSFER      KINGHELEN

我正在尝试为每个具有匹配的串联列值的记录修改Route to current team条目

因此,更新后的原始rawReturn数据帧将如下所示:

    Identifier  Entry Date      Route to current team   concatenated
0        12884  ..  01/01/2012               TRANSFER    SMITHROBERT
1        10604  ..  04/07/2013                   LOAN       JONESAMY
2        14445  ..  16/07/2018               EXTERNAL    EVANSSTEVEN
3         7898  ..  03/09/2010                   LOAN       HILLEMMA
:            :  ..           :                      :              :
34578    10487  ..  01/07/2012               TRANSFER     DENSMARCUS
34579    13016  ..  02/06/2014               EXTERNAL     WHITECHRIS
34580    12885  ..  09/08/2016                   LOAN     COLESDAVID
34581           ..  05/08/2014               TRANSFER      KINGHELEN

我正在尝试使用以下命令以df数据更新rawReturn:

header = df.columns

for item in header[3:]:
   if item != 'concatenated':
      rawReturn.loc[rawReturn.concatenated.isin(df.concatenated),[item]] = df[item]

通过上述操作,我有一个名为item的变量,该变量设置为我要更新的列(在这种情况下,item将设置为Route to current team)在{ {1}}(如果rawReturn中存在concatenated字段值。

当前返回的输出是:

df

在此示例中, Identifier Entry Date Route to current team concatenated 0 12884 .. 01/01/2012 TRANSFER SMITHROBERT 1 10604 .. 04/07/2013 JONESAMY 2 14445 .. 16/07/2018 EXTERNAL EVANSSTEVEN 3 7898 .. 03/09/2010 LOAN HILLEMMA : : .. : : : 34578 10487 .. 01/07/2012 TRANSFER DENSMARCUS 34579 13016 .. 02/06/2014 EXTERNAL WHITECHRIS 34580 12885 .. 09/08/2016 LOAN COLESDAVID 34581 .. 05/08/2014 KINGHELEN 列中Amy和Helen的值(在df数据框中有更新)已被删除但未更新。

有人可以让我知道我做错了什么吗?

谢谢

0 个答案:

没有答案