为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Python 中粘贴(如 R)和 groupby

如何在 Python 中粘贴(如 R)和 groupby

白板的微信 2021-10-05 17:10:59
我无法将 R 代码示例转换为我的脚本,并且想知道如何实现相同的目标。product_df <- example_df[,paste(name, collapse="_"),by=product_id]但它只是将所有内容连接在一起,而不是通过特定 ID。import functoolsdef reduce_concat(x, sep=""):    return functools.reduce(lambda x, y: str(x) + sep + str(y), x)def paste(*lists, sep=" ", collapse=None):    result = map(lambda x: reduce_concat(x, sep=sep), zip(*lists))    if collapse is not None:        return reduce_concat(result, sep=collapse)    return list(result)下面是生成原始数据框的代码example_df = pd.DataFrame({'product_id': ['100_1244', '100_1244', '100_1244', '100_1244', '200_1244', '200_1244', '200_1244', '200_1244'],                      'name': ['apple', 'apple', 'apple', 'apple', 'orange', 'orange', 'orange', 'orange']})    product_id  name0   100_1244    apple1   100_1244    apple2   100_1244    apple3   100_1244    apple4   200_1244    orange5   200_1244    orange6   200_1244    orange 7   200_1244    orange我希望它看起来像这样:    product_id  name0   100_1244    apple_apple_apple_apple1   200_1244    orange_orange_orange_orange
查看完整描述

3 回答

?
慕无忌7234182

TA贡献3条经验 获得超0个赞

洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情
洪水无情

查看完整回答
反对 回复 2021-10-12
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

你可以检查 groupby


example_df.groupby('product_id').name.apply('_'.join).reset_index()


  product_id                         name

0   100_1244      apple_apple_apple_apple

1   200_1244  orange_orange_orange_orange


查看完整回答
反对 回复 2021-10-05
?
千万里不及你

TA贡献1784条经验 获得超9个赞

使用groupby与join


df.groupby('product_id').apply(lambda x: '_'.join(x['name']))


product_id

100_1244        apple_apple_apple_apple

200_1244    orange_orange_orange_orange


查看完整回答
反对 回复 2021-10-05
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信