给定一列中相同的值,将剩余的行连接起来?

块状

鉴于熊猫DataFrame:

name   hobby   since
paul   A       1995 
john   A       2005 
paul   B       2015
mary   G       2013
chris  E       2005
chris  D       2001
paul   C       1986

我想得到:

name   hobby1   since1    hobby2   since2    hobby3   since3
paul   A        1995      B        2015      C        1986 
john   A        2005      NaN      NaN       NaN      NaN
mary   G        2013      NaN      NaN       NaN      NaN
chris  E        2005      D        2001      NaN      NaN

即我想每个名称一行。我事先知道一个人最多可以拥有的爱好数量,例如3个。什么是最优雅/最简短的方法?

安迪(Andy L.)

使用cumcountunstack最后,用于multiindex.map将2级列连接到一个级别

df1 = df.set_index(['name', df.groupby('name').cumcount().add(1)]) \
        .unstack().sort_index(1,level=1)

df1.columns = df1.columns.map('{0[0]}{0[1]}'.format)


Out[812]:
      hobby1  since1 hobby2  since2 hobby3  since3
name
chris      E  2005.0      D  2001.0    NaN     NaN
john       A  2005.0    NaN     NaN    NaN     NaN
mary       G  2013.0    NaN     NaN    NaN     NaN
paul       A  1995.0      B  2015.0      C  1986.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R确定一列中是否存在多个值,如果为true,则将mutate连接起来

如何将一行中的所有列值连接起来,然后将DataTable中的所有行连接成单个字符串?

将Spark中的稀疏向量连接起来?

如何将Excel中的日期列与保持原始日期完整的另一列连接起来?

将内部相同对象的属性中的值连接起来

在其中一列中将数据帧与dict数据连接起来

Excel将整个列连接起来

如何将一列中的值连接起来?

将字符串与数据帧中的每一行连接起来并对其应用函数?

熊猫根据另一个中的连续值将一列中的字符串连接起来

在另一列的值唯一之后,将一列中的值连接起来

如何在python中将具有相同列值的行连接起来?

将R中用逗号分隔的一列字符串连接起来

通过pandas中的单个列将多列分组,然后将要分组的每一列的行连接起来

如何将每个ID的3列中的值连接起来?

将矩阵从Matlab中的单元连接起来

根据值将bash中的两个文件中的行连接起来

Excel-将行中分配的具有相同编号的所有值连接起来

我需要将2行2和1组在一起,并在SQL SERVER 2008中将一列的值连接起来

将三行与另一表中的一行连接起来

将列表与 linq 中的表连接起来

将数组值与 PHP 变量连接起来

将一列的单词与来自其他列 python 的所有其他单词连接起来

将 SELECT 中的值与 ORACLE 中的分隔符连接起来

将数据行与 R(和 tidyverse)中的附加源列连接起来的函数

将每一列的值与其他列的值连接起来

如何将列与sql中具有相同名称的列连接起来?

寻找一种方法将集合中的值与(B 列)连接起来,当它们的对应值(a 列)相同时,谷歌。床单

对一列求和并将其与另一张表连接起来