gpt4 book ai didi

python - 从另一个数据帧更新数据帧不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:33 26 4
gpt4 key购买 nike

我已经多次使用以下方法,当想要从另一个数据帧更新一个数据帧中的值时,它工作得很好。但是,我有两个不想工作的数据框。以下是我遵循的步骤。我不明白为什么这不起作用。我缺少什么?有人可以指出我可以调查的可能原因吗:

“mydate”的原始值在 df 中“未找到”:

print(df.loc[df.FileName == '100212']['mydate'])
Out:
406 'not found'
Name: mydate, dtype: object

查找 df1 中我的“新日期”值为“10-2-1997”

print(df1.loc[df1.FileName == '100212']['new date']
Out:
2766 10-2-1997
Name: new date, dtype: object

以下内容应使用 df1 中的“新日期”更新 df 中的“mydate”:

df.loc[df.FileName.isin(df1.FileName), ['mydate']] = df1['new date']

但是我得到的是“NaN”,而不是“10-2-1997”:

print(df.loc[df.FileName == '100212']['mydate'])
Out:
406 'NaN'
Name: mydate, dtype: object

最佳答案

系列分配是按索引执行的。但是索引在两个数据帧之间不对齐。您可以使用pd.Series.map用一个系列代替:

series_map = df1.set_index('FileName')['new date']
df['mydate'] = df['FileName'].map(series_map).fillna(df['mydate'])

之后使用 fillna 可确保当两个数据帧之间的文件名相同时,df['mydate'] 保持不变。

关于python - 从另一个数据帧更新数据帧不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54410862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com