我想在python数据帧中将每5列组合在一起,以便组合1-5,组合6-10等。
df看起来像
D1-7 D1-8 D1-9 D1-10 D1-11 D2-7 D2-8 D2-9 D2-10 D2-11
1 0 1 1 1 1 1 0 0 1
0 1 1 0 1 1 0 1 1 0
并希望例如
D1-7-11 D2-7-12
10111 11001
01101 10110
在自定义的镜像kstudio/utils-docker中已经安装了docker命令,并在release文件中按要求预值了镜像地址在build.image中,但进行构建的时候环境找不到docker命令,我猜是根本没有应用上自定义的构建环境,请各位指教一下用法,docker只是一个例子,测试过svn,git,ftp等自己安装的命令全部都不行。在自定义的镜像kstudio/utils-docker中已经安装了docker命令,并在release文件中按要求预值了镜像地址在build.image中,但进行构建的时候环境找不到docker命令,我猜是根本没有应用上自定义的构建环境,请各位指教一下用法,docker只是一个例子,测试过svn,git,ftp等自己安装的命令全部都不行。
用Join 可以将字符串组合在一起..但是我看你两个例子意思不一样呀.
1010那个例子是所有数组.按5个一组组合在一起
d-1-7-11 那个例子是 d-1 都是一样的.后面是从7到11..这两个例子分别是两种处理方式
但是最终应该都是用Join 来组合.
要执行任务,请执行以下操作:
获取列名列表:
cc = df.columns
创建分组映射。目标列会C0,C1...:
grp = { cc[i] : 'C' + str(i // 5) for i in range(len(cc)) }
定义加入功能(的系列转换INT到的系列STR和将它们连接起来:
def myJoin(x):
return ''.join(x.astype(str).values)
最后,执行您的加入:
df.groupby(grp, axis=1).agg(lambda x: myJoin(x))
出于演示目的,我创建了测试DataFrame:
D1-7 D1-8 D1-9 D1-10 D1-11 D2-7 D2-8 D2-9 D2-10 D2-11
0 1 2 3 4 5 6 7 8 9 0
1 0 1 2 3 4 5 6 7 8 9
结果是:
C0 C1
0 12345 67890
1 01234 56789
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。