【发布时间】:2021-10-04 12:40:42
【问题描述】:
我有两个数据框如下:
data = {
'Name': ['Drama', 'Tennis Elbow', 'Cricket & bat', 'Ant and Boat'],
'Items': ['abc, def, kgf, do work', 'ball, jig, file code, sensor dye, gun', 'jack and jill, common, bitter',
'ram, krish, myran']
}
df1 = pd.DataFrame(data)
df1
Name Items
0 Drama abc, def, kgf, do work
1 Tennis Elbow ball, jig, file code, sensor dye, gun
2 Cricket & bat jack and jill, common, bitter
3 Ant and Boat ram, krish, myran
和
data2 = {
'values': ['abc and sea', 'def work', 'abc', 'ram cold', 'myran add', 'check'],
'gems': ['A1, A2, A3, A4', 'B1, A1, B2, B3', 'C1, A1', 'KS, KM', 'JP, CVK', 'KF, GF']
}
df2 = pd.DataFrame(data2)
df2
values gems
0 abc and sea A1, A2, A3, A4
1 def work B1, A1, B2, B3
2 abc C1, A1
3 ram cold KS, KM
4 myran add JP, CVK
5 check KF, GF
我想将字符串或包含项目的字符串从df1['Items'] 映射到df2['values'],并在新列中创建一个具有映射值的新数据框,如下所示:
values gems Name
0 abc and sea A1, A2, A3, A4 Drama
1 def work B1, A1, B2, B3 Drama
2 abc C1, A1 Drama
3 ram cold KS, KM Ant and Boat
4 myran add JP, CVK Ant and Boat
【问题讨论】:
-
如果一个值出现在多个项目中,输出应该是什么?例如,“abc 和球”?或者这永远不会发生?
-
@not_speshal 永远不会发生
-
为什么
def work匹配do work? -
@HenryEcker 部分字符串
def和work属于Drama -
@not_speshal 以逗号分隔。