我有两个数据Df1
和Df2
。Df1['Col2]
中只有几行是空的。我想用Df2
的相应值填充此空白行。
Df1
Col1 Col2
1 AA
2
2
2
3 AC
3 AC
Df2
Cluster label
1 AA
2 AB
3 AC
4 AD
Desired Output
Col1 Col2
1 AA
2 AB
2 AB
2 AB
3 AC
3 AC
我正在尝试下面的代码,但没有得到结果:
Df1['Col2'] =np.where((Df2['Cluster']==Df1['Col1']),Df2['label'],'No label found')
我也不能使用merge
函数,因为我还有其他一些限制。
答案 0 :(得分:1)
您可以将col2上的条件与条件相结合
df1{"col2"] = df1.apply(lambda x: df2[df2['Cluster'] == x ['col1']]['label'].tolist()[0] if x['col2'] is None else x['col2'], axis = 1)
答案 1 :(得分:1)
您可以使用字典,虽然不算太优雅,但可能会有用。
cluster_dict = df2.set_index('Cluster')['label'].to_dict()
df1.set_index('Col1')['Col2'].fillna(cluster_dict).reset_index()
col1 col2
0 1 AA
1 2 AB
2 2 AB
3 2 AB
4 3 AC
5 3 AC