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 次 |
最近记录: |