Sam*_*Sam 1 python mapping merge vectorization pandas
我有两个数据框df1和df2.
我试图找出执行的映射,对于在每一行的最好方式df1,我想搜索匹配(id,time_by_hour)中df2,然后填入相应的值df2回df1。
下面是df1_final我希望它最终看起来的样子。
先感谢您!
df1
Out[100]:
id time_by_min time_by_hour value
0 a 2017-06-30 01:25:00.000 2017-06-30 02:00:00 NaN
1 a 2017-06-30 01:36:32.308 2017-06-30 02:00:00 NaN
2 a 2017-06-30 02:25:00.000 2017-06-30 03:00:00 NaN
3 a 2017-06-30 02:36:32.308 2017-06-30 03:00:00 NaN
4 b 2017-06-30 01:25:00.000 2017-06-30 02:00:00 NaN
5 b 2017-06-30 01:36:32.308 2017-06-30 02:00:00 NaN
6 b 2017-06-30 02:25:00.000 2017-06-30 03:00:00 NaN
df2
Out[101]:
id time_by_hour value
0 a 2017-06-30 02:00:00 100
1 a 2017-06-30 03:00:00 200
2 b 2017-06-30 02:00:00 150
3 b 2017-06-30 03:00:00 30
4 c 2017-06-30 02:00:00 80
5 c 2017-06-30 03:00:00 900
df1_final
Out[102]:
id time_by_min time_by_hour value
0 a 2017-06-30 01:25:00.000 2017-06-30 02:00:00 100
1 a 2017-06-30 01:36:32.308 2017-06-30 02:00:00 100
2 a 2017-06-30 02:25:00.000 2017-06-30 03:00:00 200
3 a 2017-06-30 02:36:32.308 2017-06-30 03:00:00 200
4 b 2017-06-30 01:25:00.000 2017-06-30 02:00:00 150
5 b 2017-06-30 01:36:32.308 2017-06-30 02:00:00 150
6 b 2017-06-30 02:25:00.000 2017-06-30 03:00:00 30
Run Code Online (Sandbox Code Playgroud)
你可以看看 merge
df1['value']=df1[['time_by_hour','id']].merge(df2,how='left').value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6788 次 |
| 最近记录: |