数据帧较小的_df如下所示:
> smaller_df.head()
MSA Code Line RPP
0 10180 1.0 91.2
1 10180 2.0 97.4
2 10180 3.0 78.7
3 10180 4.0 93.5
4 10420 1.0 90.4
...
较小的_df.d类型会导致
MSA Code int64
Line float64
RPP float64
Wages object
dtype: object
wage_keys.head()给出:
MSA Code Average Wage
0 11260 94490.000000
1 21820 72080.000000
2 10180 71128.571429
3 13820 87338.396624
4 10420 76620.000000
...
工资_keys.d类型为:
MSA Code int64
Average Wage float64
dtype: object
请注意,相同的“MSA代码”可以在较小的df中出现多次,但在工资键中仅出现一次
我希望较小的_df中的新列“工资”设置为工资键中的相应值
因此,新表应如下所示:
MSA Code Line RPP Wages
0 10180 1.0 91.2 71128.571429
1 10180 2.0 97.4 71128.571429
2 10180 3.0 78.7 71128.571429
3 10180 4.0 93.5 71128.571429
4 10420 1.0 90.4 76620.000000
...
通过制作工资字典,我有以下代码来进行映射:
wages = wage_keys.set_index('MSA Code').to_dict()
smaller_df['Wages'] = smaller_df['MSA Code'].map(wages)
问题在于,这会导致:
MSA Code Line RPP Wages
0 10180 1.0 91.2 NaN
1 10180 2.0 97.4 NaN
2 10180 3.0 78.7 NaN
3 10180 4.0 93.5 NaN
4 10420 1.0 90.4 NaN
显然,我遗漏了一些东西。如何将“工资”列的值设置为工资字典(或工资关键字数据框)中的正确对应值
你的错误是把它改成字典了。是的
这导致了一系列的口述。你应该做的是
或者
这两种方法都产生了
map
可以理解的映射格式。现在,您的map
调用将生成预期的输出:相关问题 更多 >
编程相关推荐