使用Pandas中的字典部分填充列

时间:2019-05-23 22:08:10

标签: python pandas

我有一个非常简单的问题,但我似乎不记得如何实现自己的目标。我有一个带有字符串索引的DataFrame,如下所示:

        value
 'a'      1
 'b'      2
 'c'      3

我还有一本这样的字典:

dic={'a':3,'c':6}

我想使用字典创建一个新列value2,以便最终的DataFrame如下所示:

        value    value2
 'a'      1        3
 'b'      2       nan
 'c'      3        6

我认为这和输入df['value2'] = dic一样简单,但是由于字典的长度与列的长度不同,因此存在不匹配的情况。

那么,填充我的列的合适方法是什么?

谢谢

2 个答案:

答案 0 :(得分:2)

使用index.map

df['value2'] = df.index.map(dic)

   value  value2
a      1     3.0
b      2     NaN
c      3     6.0

答案 1 :(得分:0)

由于您已经拥有值dict,因此可以使用assign

df.assign(v2=pd.Series(dic))
Out[773]: 
   value   v2
a      1  3.0
b      2  NaN
c      3  6.0

请记住,index是分配的隐藏键

df['value2'] = pd.Series(dic)