• Python学习笔记:一个单列split转换为多行的例子


    一、问题提出

    实现如图所示的转换。

    二、解决问题

    1.方法一:堆叠

    # 构建测试数据
    import pandas as pd
    df = pd.DataFrame({'name':['a', 'b,c'],
                       'age':[15, 16]})
    print(df)
    
    df.set_index('age')['name'].str.split(',', expand=True).stack().reset_index(level=1, drop=True).reset_index(name='name')
    '''
       age name
    0   15    a
    1   16    b
    2   16    c
    '''
    

    2.方法二:循环

    def shift(arr1, arr2):
        arr = []
        for k,v in dict(zip(arr1, arr2)).items():
            # print(k)
            # print(v)
            if isinstance(v, str):
                for s in v.split(','):
                    arr.append({'name':k, 'age':s})
        return pd.DataFrame(arr)
    
    shift(df.age, df.name)
    '''
      age  name
    0   a    15
    1   b    16
    2   c    16
    '''
    
  • 相关阅读:
    node.js中常用的fs文件系统
    秒懂 this
    Filter 过滤器
    Ubuntu 安装zookeeper
    Vmware 设置NAT模式
    TreeMap
    ArrayList扩容
    Java 面试题收集
    SwitchyOmega 设置修改代理
    Jedis操作Redis
  • 原文地址:https://www.cnblogs.com/hider/p/15400221.html
Copyright © 2020-2023  润新知