我有一个数据帧df1,它有:
F_ID I_Code F_Date
1 FT-54185 01/09/2019
2 FT-35447 01/09/2019
3 FT-39312 01/09/2019
4 FT-21146 01/09/2019
5 FT-40664 01/09/2019
1 FT-56984 02/09/2019
2 FT-19680 02/09/2019
3 FT-89801 02/09/2019
4 FT-29238 02/09/2019
5 FT-45919 02/09/2019
1 FT-97960 03/09/2019
2 FT-76736 03/09/2019
3 FT-73886 03/09/2019
4 FT-70293 03/09/2019
5 FT-72250 03/09/2019
我有另一个数据帧df2,它有以下条目:
F_Date ID_code
01/09/2019 5
01/09/2019 5
01/09/2019 5
01/09/2019 5
01/09/2019 2
01/09/2019 2
01/09/2019 2
01/09/2019 2
我想生成一个新的列“ID”,它将从df1中提取并插入到df2中
预期产出:
F_Date ID_code ID
01/09/2019 5 FT-40664
01/09/2019 5 FT-40664
01/09/2019 5 FT-40664
01/09/2019 5 FT-40664
01/09/2019 2 FT-35447
01/09/2019 2 FT-35447
01/09/2019 2 FT-35447
01/09/2019 2 FT-35447
如果ID_代码中没有值('NA'或0),则需要在列中填写'NA'
我试图通过以下方式实现同样的目标:
d = df1.groupby('F_Date')['I_Code'].apply(list).to_dict()
df2['new'] = df2.apply(lambda x: d.get(x['F_Date'], [])[x['ID_Code']], axis=1)
我得到以下错误:
TypeError: ('list indices must be integers or slices, not float', 'occurred at index 0')
有谁能告诉我我做错了什么,或者有没有其他方法来达到同样的目的
尝试:
相关问题 更多 >
编程相关推荐