使用与列对应的列表值在pandas数据框中插入值

时间:2017-08-24 09:17:20

标签: python pandas dataframe

我有一个数据框:

id    val    size
1      100
2      500
3      300

我有一个嵌套列表L = [[300,20],[100,45],[500,12]]

我想用我的子列表中的第二个元素填充我的数据帧,对应于该列值。

,即我的最终数据框应该是

id    val    size
1      100   45
2      500   12
3      300   20

2 个答案:

答案 0 :(得分:1)

使用merge

的另一种方法
In [1417]: df.merge(pd.DataFrame(L, columns=['val', 'size']), on='val')
Out[1417]:
   id  val  size
0   1  100    45
1   2  500    12
2   3  300    20

答案 1 :(得分:0)

首先初始化映射:

In [132]: mapping = dict([[300,20],[100,45],[500,12]]); mapping
Out[132]: {100: 45, 300: 20, 500: 12}

现在,您可以使用df.replacedf.map

选项1

使用df.replace

In [137]: df['size'] = df.val.replace(mapping)

In [138]: df
Out[138]: 
   id  val  size
0   1  100    45
1   2  500    12
2   3  300    20

选项2

使用df.map

In [140]: df['size'] = df.val.map(mapping)

In [141]: df
Out[141]: 
   id  val  size
0   1  100    45
1   2  500    12
2   3  300    20