Python 基于另一个数据帧中的id分配数据帧id
我有两个数据帧称为数据帧A和数据帧BPython 基于另一个数据帧中的id分配数据帧id,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有两个数据帧称为数据帧A和数据帧B A id| column1 |column2 3 | 439 | 2398 41| 498 | 34 2 | 233 | 43 B column1 |column2 439 | 2398 498 | 56 233 | 43 我想根据数据帧A中的id为数据帧B分配一个id列。如果
A
id| column1 |column2
3 | 439 | 2398
41| 498 | 34
2 | 233 | 43
B
column1 |column2
439 | 2398
498 | 56
233 | 43
我想根据数据帧A中的id为数据帧B分配一个id列。如果数据帧A和数据帧B中存在一行,我想将相应的id从数据帧A分配给数据帧B。如果数据帧B中的一行不在数据帧A中,我想将“无”分配给B中id列中的该单元格。也就是说,我想要
B
id | column1 |column2
3 | 439 | 2398
None| 498 | 56
2 | 233 | 43
问题:如何根据数据帧B中的列将ID从数据帧A分配到数据帧B?您可以使用左合并。注意:对于数值系列
NaN
值将强制id
系列成为float
类型。在大多数情况下,这不是问题,我不建议您逐行“强制”类型转换
res = pd.merge(B, A, how='left')
print(res)
column1 column2 id
0 439 2398 3.0
1 498 56 NaN
2 233 43 2.0
谢谢你的回答!如果dataframe B已经有一个id列具有NaN值,这是否也可以工作?这会将该id覆盖为数据帧A中的id吗?@titusAdam,不会。那会是。根据您的输入,解决方案假定
B
只有列['column1','column2']
。