[英]How do I replace column values of a dataframe with values of another dataframe based on a common column?
I have two dataframes, one that looks like this:我有两个数据框,一个看起来像这样:
hec_df: hec_df:
accident year![]() |
factor![]() |
age![]() |
---|---|---|
2007 ![]() |
1.5 ![]() |
13 ![]() |
2008 ![]() |
1.6 ![]() |
11 ![]() |
2009 ![]() |
1.7 ![]() |
15 ![]() |
and hec_ldfs:和 hec_ldfs:
accident year![]() |
factor![]() |
---|---|
2007 ![]() |
1.6 ![]() |
2008 ![]() |
1.64 ![]() |
2009 ![]() |
1.7 ![]() |
My goal is to replace the factor value of df1 with the factor value of df2.我的目标是用 df2 的因子值替换 df1 的因子值。 My code for this is
我的代码是
hec_df['factor'] = hec_df['factor'].map(hec_ldfs.set_index('accident year')['factor'])
But it returns NaN on the factor column.但它在因子列上返回 NaN。 Does anyone know why this is happening?
有谁知道为什么会这样?
EDIT: I'm not sure why my first dataframe is formatted like that, does anyone know how to fix it?编辑:我不确定为什么我的第一个 dataframe 是这样格式化的,有人知道如何解决吗?
you're mapping factor to the accident_year, instead of hec_df.accident_year to the hec_df.accident year您将 factor 映射到 accident_year,而不是 hec_df.accident_year 到 hec_df.accident 年份
hec_df['factor'] = hec_df['accident year'].map(hec_ldfs.set_index('accident year')['factor']).fillna(hec_df['factor'])
hec_df
accident year factor age
0 2007 1.60 13
1 2008 1.64 11
2 2009 1.70 15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.