我有一个数据框:
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
答案 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.replace
或df.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