You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R转Python用户需求:按ID拼接inout变量且保留全部记录

解决方案

你可以用Pandas的groupby配合transform方法实现需求,transform会把分组计算的结果映射回原DataFrame的每一行,刚好满足保留所有记录的要求,和R里聚合后ungroup的效果一致。

实现代码

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'ID': [120, 120, 120], 
    'inout': ['IN', 'IN', 'OUT']
})

# 按ID分组拼接inout,生成目标字段
df['desire_var'] = df.groupby('ID')['inout'].transform(lambda x: '-'.join(x))

print(df)

运行结果

ID inout  desire_var
0  120    IN  IN-IN-OUT
1  120    IN  IN-IN-OUT
2  120   OUT  IN-IN-OUT

原理说明

  • groupby('ID'):按ID字段分组,将相同ID的行归为同一组
  • transform(lambda x: '-'.join(x)):对每个分组的inout列执行字符串拼接操作,再把拼接结果填充到该分组的每一行中,不会丢失原始记录,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者mar355

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 05:52:00