我有两个数据帧,并试图找到一种方法来匹配从一个数据帧到另一个数据帧的确切子字符串
第一个数据帧:
import pandas as pd
import numpy as np
random_data = {'Place Name':['TS~HOT_MD~h_PB~progra_VV~gogl', 'FM~uiosv_PB~emo_SZ~1x1_TG~bhv'],
'Site':['DV360', 'Adikteev']}
dataframe = pd.DataFrame(random_data)
print(dataframe)
第二个数据帧
test_data = {'code name': ['PB', 'PB', 'PB'],
'Actual':['programmatic me', 'emoteev', 'programmatic-mechanics'],
'code':['progra', 'emo', 'prog']}
test_dataframe = pd.DataFrame(test_data)
方法
for k, l, m in zip(test_dataframe.iloc[:, 0], test_dataframe.iloc[:, 1], test_dataframe.iloc[:, 2]):
dataframe['Site'] = np.select([dataframe['Place Name'].str.contains(r'\b{}~{}\b'.format(k, m), regex=False)], [l],
default=dataframe['Site'])
当前输出如下所示,尽管我希望匹配精确的子字符串,但它不适用于上面的代码
电流输出:
Place Name Site
TS~HOT_MD~h_PB~progra_VV~gogl programmatic-mechanics
FM~uiosv_PB~emo_SZ~1x1_TG~bhv emoteev
预期产出:
Place Name Site
TS~HOT_MD~h_PB~progra_VV~gogl programmatic me
FM~uiosv_PB~emo_SZ~1x1_TG~bhv emoteev
这不是最优雅的解决方案,但它确实起到了作用
设置数据
溶液
在
test_dataframe
中创建一列,其中包含要匹配的子字符串:定义要应用于
test_dataframe
的函数:输出:
资料
将}和
test_datframe
{Actual
分别映射到字典中作为key
和value
连接由|分隔的键以启用对任一短语的搜索
从符合k中任何短语的datframe中提取字符串,并将其映射到字典
输出
相关问题 更多 >
编程相关推荐