我有两个类似的数据帧,如下所示:
import pandas as pd
num1 = ["1111 2222", "3333", "4444 5555 6666", "7777 8888", "9999"]
num2 = ["A1", "A2", "A3", "A4", "A5"]
linkage = pd.DataFrame({"num1":num1, "num2":num2})
num1 = ["2222", "3333", "5555", "8888", "9999"]
num2 = ['none', 'none', 'none', 'none', 'none']
df = pd.DataFrame({"num1":num1, "num2":num2})
联动装置:
num1 num2
1111 2222 A1
3333 A2
4444 5555 6666 A3
7777 8888 A4
9999 A5
数据框:
num1 num2
2222 none
3333 none
5555 none
8888 none
9999 none
我想根据第二个数据帧的"num1"值是否是链接数据帧中的"num1"值之一,将链接数据帧中的"num2"值放置在第二个数据帧中.我目前拥有的代码是:
df.num2 = [linkage.num2[i] for y in df.num1 for i, x in enumerate(linkage.num1) if y in x]
这就产生了我想要的:
num1 num2
2222 A1
3333 A2
5555 A3
8888 A4
9999 A5
但是,数据帧越大,代码速度明显越慢.CPU times: total: 516 ms