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

2024-10-05 14:30:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧:

id    val    size
1      100
2      500
3      300

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

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

我的最终数据帧应该是

^{pr2}$

Tags: 数据id元素列表sizeval列值pr2
2条回答

另一种使用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

首先初始化映射:

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

现在,您可以使用df.replace或{}。在


选项1

使用df.replace

^{pr2}$

选项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

相关问题 更多 >