df1 = pd.DataFrame({'Key':['OK340820.1','OK340821.1'],'Length':[50000,67000]})
df2 = pd.DataFrame({'Key':['OK340820','OK340821'],'Length':[np.nan,np.nan]})
如果df2.Key是df1.Key的子字符串,则将df2的Length设置为df1中Length的值
我试着这么做:
df2['Length']=np.where(df2.Key.isin(df1.Key.str.extract(r'(.+?(?=\.))')), df1.Length, '')
但它没有归还火柴。
3条答案
按热度按时间qlfbtfca1#
将
df2.Key
Map到df1
的"准备好的"Key
值:h9a6wy2h2#
您可以使用正则表达式提取字符串,然后Map值:
更新
df2
:或者使用
merge
:如果
df1
中的密钥始终为XXX.1
形式,并且删除.1
就足够了,则可选择:wfveoks03#
另一种可能的解决方案基于
pandas.DataFrame.update
:输出: