0

我正在尝试将值添加到指定行的列中的集合。例如我有:(用户名和标签是列名)

username  tags
qwe       (happy)

我想将其更改为:

username  tags
qwe       (happy, friendly)

具体来说,我想首先使用用户名“qwe”搜索该行,然后在该用户名的标签列中插入另一个值。请注意,标签是成套的。

我可以使用数据框中的什么功能?谢谢!

4

1 回答 1

0

获取搜索用户所在的行并将新标签添加到该行中的标签集。既然是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                 {}
于 2020-07-01T10:14:24.570 回答