我想将字典键值替换为列表值的数据框系列。
我的输入
字典:
doc_id name
1 tamil.sh
2 english.sh
3 maths.sh
数据框:
doc_id count
["1","2"] 3
["2","3"] 4
我希望输出:
doc_id count
["tamil.sh","english.sh"] 3
["english.sh","maths.sh"] 4
答案 0 :(得分:0)
首先由DataFrame
到zip
来创建字典-这是键整数,因此如果需要列表理解,get
会将字符串转换为int
以获得正确的matchin值:
d = dict(zip(df1['doc_id'], df1['name']))
print (d)
{1: 'tamil.sh', 2: 'english.sh', 3: 'maths.sh'}
#values are strings, so converting to integers is necessary
print (df2.loc[0, 'doc_id'])
['1', '2']
df2['doc_id'] = df2['doc_id'].apply(lambda x: [d.get(int(y),y) for y in x])
print (df2)
doc_id count
0 [tamil.sh, english.sh] 3
1 [english.sh, maths.sh] 4