南DD
我有以下问题
1001人完成活动A,然后完成活动C(活动A之后)我需要将连续的行移动到目标列
df = pd.DataFrame([[1001, 'A'], [1001,'C'], [1004, 'D'],[1005, 'C'],
[1005,'D'], [1010, 'A'],[1010,'D'],[1010,'F']], columns=['CustomerNr','Activity'])
df = pd.DataFrame([[1001, 'A','C'], [1004, 'D',np.nan],[1005, 'C','D'],
[1010, 'A','D'],[1010,'D' ,'F']], columns=['CustomerNr','Target','Source'])
可以使用:
df['Target']=df['Activity'].shift(-1)
df['prev_CustomerNr']=df['CustomerNr'].shift(-1)
print(df)
'''
CustomerNr Activity Target prev_CustomerNr
0 1001 A C 1001.0
1 1001 C D 1004.0
2 1004 D C 1005.0
3 1005 C D 1005.0
4 1005 D A 1010.0
5 1010 A D 1010.0
6 1010 D F 1010.0
7 1010 F None NaN
'''
#we can't find the target information of the most recent activity. So we drop the last row for each CustomerNr.
m1 = df.duplicated(['CustomerNr'], keep="last") #https://stackoverflow.com/a/70216388/15415267
m2 = ~df.duplicated(['CustomerNr'], keep=False)
df = df[m1|m2]
#If CustomerNr and prev_CustomerNr are not the same, I replace with nan.
df['Target']=np.where(df['CustomerNr']==df['prev_CustomerNr'],df['Target'],np.nan)
df=df.drop(['prev_CustomerNr'],axis=1)
print(df)
'''
CustomerNr Activity Target
0 1001 A C
2 1004 D NaN
3 1005 C D
5 1010 A D
6 1010 D F
'''
相关内容
- 没有找到相关文章
最新更新
- 当我们使用暂存标志(--暂存)进行"npm build"时,如何在应用程序中创建"NON PRODUCTION"横幅?
- 循环访问列表,为每个项目创建新列表,然后将新列表作为参数传递给函数,但"var referenced before assignment"
- React单元测试Jest使用Typescript mount()的问题
- 是否有一种方法来隐藏代码使用Swift包管理器?
- 如何限制游戏循环fps?
- Django将更复杂的python类型传递给模板
- r语言 - 创建可使用元素访问的响应值列表
- ECharts Apache:条形图-添加水平水平线
- aws Cloudfront的维护页面
- 是否有任何方法为我的php应用程序从计算机到整个互联网?
- 根据指定值计算集合中所有可能的值组合
- 如何将Django模型限制为单个一对一关系?
- 尽管有"max-size"命令,但 docker-compose 未轮换失控的 docker 日志
- 使用元组作为索引来比较列表中的项
- 如何修复"javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting wit
- c -使用中断或线程和全局变量进行优化
- Html语言中带有fetch方法的Onclick回调
- 如何调试SQL Server 2018中的存储过程
- 如何修复我的代码从serial1接收数据并按下一个值并将其发送到serial0,同时运行步进电机 &
- CentOS安装R包RLumShiny失败
- 解析字符串以创建几何图形
- restorePreviousSignIn()在GIDSignIn-iOS SDK V6.0.2到期时不获取新的idTo
- 从Nodejs发送的错误请求-原始消息缺少头部信息
- Oracle 将今天的值传递给变量并使用它
- r语言 - 是否有可能把3D网格和arc3d对象在同一个rgl窗口,同时允许单独旋转?
- 依次递增的号码,如123 + 123 = 123123
- SQL:如何使用参数变量重命名标题?
- 在Shopify中隐藏折扣代码输入字段
- 无法导入外部 NPM 包来制作角度库
- 掩码输入字段的长度验证
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium