如何将字典映射到熊猫系列系列?

时间:2019-05-10 07:06:51

标签: python-3.x pandas pandas-groupby

我想将字典键值替换为列表值的数据框系列。

我的输入

字典:

   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

1 个答案:

答案 0 :(得分:0)

首先由DataFramezip来创建字典-这是键整数,因此如果需要列表理解,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