开发者社区> 问答> 正文

如何在python中组合多个列

我想在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

展开
收起
一码平川MACHEL 2019-02-27 14:36:12 4144 0
4 条回答
写回答
取消 提交回答
  • 尊托云数www.zuntop.com技术专家
    2019-09-21 14:11:51
    赞同 展开评论 打赏
  • 在自定义的镜像kstudio/utils-docker中已经安装了docker命令,并在release文件中按要求预值了镜像地址在build.image中,但进行构建的时候环境找不到docker命令,我猜是根本没有应用上自定义的构建环境,请各位指教一下用法,docker只是一个例子,测试过svn,git,ftp等自己安装的命令全部都不行。在自定义的镜像kstudio/utils-docker中已经安装了docker命令,并在release文件中按要求预值了镜像地址在build.image中,但进行构建的时候环境找不到docker命令,我猜是根本没有应用上自定义的构建环境,请各位指教一下用法,docker只是一个例子,测试过svn,git,ftp等自己安装的命令全部都不行。

    2019-07-17 23:29:36
    赞同 展开评论 打赏
  • 用Join 可以将字符串组合在一起..但是我看你两个例子意思不一样呀.

    1010那个例子是所有数组.按5个一组组合在一起
    d-1-7-11 那个例子是 d-1 都是一样的.后面是从7到11..这两个例子分别是两种处理方式
    但是最终应该都是用Join 来组合.

    2019-07-17 23:29:36
    赞同 展开评论 打赏
  • 要执行任务,请执行以下操作:

    获取列名列表:

    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

    2019-07-17 23:29:36
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载