【发布时间】:2017-01-25 18:27:22
【问题描述】:
我确信这将是一个“doh”时刻,但我很难在数据帧之间复制一组列,其中 df1 中特定列的值也在 df2 中找到。
从这里开始,我正在构建一个不包括 df1 中的“p_people_id”字段的列(cols)列表,并在 df2 中创建这些字段并分配一个 nan 值。 列= 之后 df2 看起来像这样: 使用这些 dfs,我试图查找 df2.a_people_id == df1.p_people_id 的所有实例,并将 df1[cols] 的值分配给 df2 实例。
使用 .loc 查找实例非常简单。我已经设法能够使用 .loc 选择我想要定位的列
df2.loc[df2['a_people_id']==df1['p_people_id'][0],np.array(cols)]
但是,如果我尝试这样的方法来设置/分配 df1 中的 id 字段与 df2 中的 id 字段匹配的那些特定列:
df2.loc[df2['a_people_id']==df1['p_people_id'][0],np.array(cols)]=df1.loc[df1['p_people_id']==df1['p_people_id'][0],np.array(cols)]
我尝试以各种方式使用 .ix、.loc、.iloc、.where、.select、.set,但这必须是我“只是做得不对的领域之一。 "我可以发布其他示例,在这些示例中,我设法获得了正确的语法,以找到特定 id 匹配的 [cols] 并且没有打印错误或“查看与复制”警告,但也没有发生分配。我哪里错了?
【问题讨论】: