开发者社区> 问答> 正文

如何在python中组合多个列

python小能手 2019-02-27 14:36:12 354

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

Python
分享到
取消 提交回答
全部回答(4)
  • zuntop_com
    2019-09-21 14:11:51
    0 0
  • 阿布阿拉
    2019-07-17 23:29:36

    在自定义的镜像kstudio/utils-docker中已经安装了docker命令,并在release文件中按要求预值了镜像地址在build.image中,但进行构建的时候环境找不到docker命令,我猜是根本没有应用上自定义的构建环境,请各位指教一下用法,docker只是一个例子,测试过svn,git,ftp等自己安装的命令全部都不行。在自定义的镜像kstudio/utils-docker中已经安装了docker命令,并在release文件中按要求预值了镜像地址在build.image中,但进行构建的时候环境找不到docker命令,我猜是根本没有应用上自定义的构建环境,请各位指教一下用法,docker只是一个例子,测试过svn,git,ftp等自己安装的命令全部都不行。

    0 0
  • 腾虎
    2019-07-17 23:29:36

    用Join 可以将字符串组合在一起..但是我看你两个例子意思不一样呀.

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

    0 0
  • python小能手
    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

    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题