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让我知道你是怎么做的。很乐意帮忙。这有用吗?谢谢你的帮助。我尝试了一下,但我发现这是将观察结果添加到列表中,而不是更新它们。