我正在尝试将值添加到指定行的列中的集合。例如我有:(用户名和标签是列名)
username tags
qwe (happy)
我想将其更改为:
username tags
qwe (happy, friendly)
具体来说,我想首先使用用户名“qwe”搜索该行,然后在该用户名的标签列中插入另一个值。请注意,标签是成套的。
我可以使用数据框中的什么功能?谢谢!
获取搜索用户所在的行并将新标签添加到该行中的标签集。既然是set,就必须使用.add。
如果您的“用户名”字段不是索引 -
df[df['username']=='qwe']['tags'].values[0].add(tag)
如果您的“用户名”字段是索引 -
df.loc['qwe']['tags'].add(tag)
示例数据框:
df = pd.DataFrame({'user': ['one', 'two', 'three', 'four'],
'tags': [set(), set(), set(), set()]})
代码:
def add_tag(user, tag):
df[df['user']==user]['tags'].values[0].add(tag)
add_tag('two', 'happy')
add_tag('two', 'friendly')
add_tag('two', 'friendly')
结果:
user tags
0 one {}
1 two {friendly, happy}
2 three {}
3 four {}