代码之家  ›  专栏  ›  技术社区  ›  user14696236

如何为每个对应的列创建一行[重复]

  •  1
  • user14696236  · 技术社区  · 2 年前

    我有一个数据帧,格式如下:

    - 名称 0 1. 2. 3.
    0 约翰 对象1 对象2 对象3 对象4
    1. 史密斯 对象1 对象2 对象3 对象4
    2. 杰克 对象1 对象2 对象3 对象4

    我想将其转换为以下内容:

    - 名称 0
    0 约翰 对象1
    1. 约翰 对象2
    2. 约翰 对象3
    3. 约翰 对象4
    4. 史密斯 对象1
    5. 史密斯 对象2
    6. 史密斯 对象3
    7. 史密斯 对象4
    8. 杰克 对象1
    9 杰克 对象2
    10 杰克 对象3
    11 杰克 对象4
    1 回复  |  直到 2 年前
        1
  •  0
  •   Anoushiravan R    2 年前

    您可以尝试:

    import pandas as pd
    import numpy as np
    
    df = (pd.melt(df, id_vars=['Name'], value_vars=df.columns[1:])
     .drop(columns=['variable'])
     .sort_values(by='Name')
     .pipe(lambda g: g.set_axis(np.arange(0, len(g.index)), axis=0)))
    
    df
    
         Name     value
    0    Jack  object 1
    1    Jack  object 2
    2    Jack  Object 3
    3    Jack  object 4
    4    John  object 1
    5    John  object 2
    6    John  Object 3
    7    John  object 4
    8   Smith  object 1
    9   Smith  object 2
    10  Smith  Object 3
    11  Smith  object 4