有这样的名单的:
name_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']
以及以下df
:
df = pd.DataFrame(
{
'idx': ['(3,)','(3, 5)','(1, 3, 5)',
'(1, 3, 5, 10)','(1, 3, 5, 8, 10)'],
'score': [0.773,0.841,0.862,0.874,0.883]
}
)
df.head(2)
idx score
0 (3,) 0.773
1 (3, 5) 0.841
idx
列表示name_list
的元素的索引。我想用列表中的相应名称向df
添加一个新列name
。
预期效果:
idx score name
0 (3,) 0.773 (D,)
1 (3, 5) 0.841 (D, F)
2 (1, 3, 5) 0.862 (B, D, F)
3 (1, 3, 5, 10) 0.874 (B, D, F, K)
4 (1, 3, 5, 8, 10) 0.883 (B, D, F, I, K)
2条答案
按热度按时间atmip9wb1#
你需要几个步骤:
ast.literal_eval
的元组,如果你确定索引是有效的,就不需要字典了:
对于作为输出的字符串:
输出:
tnkciper2#
下面是使用
str.findall()
和explode()
的方法输出: