Python 将数据框中的值替换为基于其中一列的另一个数据框

Python 将数据框中的值替换为基于其中一列的另一个数据框,python,pandas,for-loop,Python,Pandas,For Loop,我有两个数据帧,一个包含一些信息,另一个较短的数据帧包含我想对第一个数据帧进行的一些修改。我试过类似下面写的东西 for x in df['var']: if x in df2['var']: df['var2'] == df2['var2'] 例如: ---> df num_legs num_wings num_specimen_seen falcon 2 2 10 dog

我有两个数据帧,一个包含一些信息,另一个较短的数据帧包含我想对第一个数据帧进行的一些修改。我试过类似下面写的东西

for x in df['var']:
    if x in df2['var']:
         df['var2'] == df2['var2']
例如:

---> df
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8

---> df1
        num_legs  num_wings  num_specimen_seen
dog            4          0                  5
spider         8          0                  9

---> output
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  5
spider         8          0                  9
fish           0          0                  8

您是否尝试过
df.update()

备选方案

import numpy as np
df[df.index.isin(df1.index)]=np.nan
df1.combine_first(df)
它的工作原理

#查找df中两个数据帧之间的共享索引

df[df.index.isin(df1.index)]

#Make them NaN


df[df.index.isin(df1.index)]=np.nan

#Use [.combine_first][1] to fill them

df1.combine_first(df)

您是否尝试过
df.update()

备选方案

import numpy as np
df[df.index.isin(df1.index)]=np.nan
df1.combine_first(df)
它的工作原理

#查找df中两个数据帧之间的共享索引

df[df.index.isin(df1.index)]

#Make them NaN


df[df.index.isin(df1.index)]=np.nan

#Use [.combine_first][1] to fill them

df1.combine_first(df)

如果您发布了数据帧的示例以及需要修改的数据帧的外观,您将很快找到帮助。这可能会有帮助,谢谢-我已经添加了一个示例DataSety,如果您发布数据框架的示例以及您需要修改的内容,您会很快找到帮助。这可能会有所帮助,谢谢-我添加了一个示例dataset@anona让我知道你怎么样了。很乐意帮忙。这有用吗?谢谢你的帮助。我试过了,但我发现这是在将观察结果添加到列表中,而不是更新它们。@anona让我知道你是怎么做的。很乐意帮忙。这有用吗?谢谢你的帮助。我尝试了一下,但我发现这是将观察结果添加到列表中,而不是更新它们。