• 【pandas小技巧】--拆分列


    拆分列是pandas中常用的一种数据操作,它可以将一个包含多个值的列按照指定的规则拆分成多个新列,方便进行后续的分析和处理。
    拆分列的使用场景比较广泛,以下是一些常见的应用场景:

    1. 处理日期数据:在日期数据中,经常会将年、月、日等信息合并成一列,通过拆分列可以将其拆分成多个新列,方便进行时间序列分析。
    2. 处理地址数据:类似于日期数据,在地址数据中也经常会将省、市、区等信息合并成一列,通过拆分列可以将其拆分成多个新列,有利于进行地理位置分析。
    3. 处理姓名数据:在一些数据集中,姓名通常会以“姓”、“名”两列呈现,通过拆分列可以将其分别提取出来,方便进行人口统计学分析。
    4. 处理文本数据:在一些文本数据中,可能存在多个关键词同时出现的情况,通过拆分列可以将这些关键词拆分成多个新列,方便进行文本分类或聚类分析。

    本篇简要介绍下pandas拆分列的常用方法。

    1. 拆出列中部分信息

    如下测试数据:

    import pandas as pd
    
    df = pd.DataFrame(
        {
            "姓名": ["张 三", "李 四", "王 五"],
            "地址": [
                "江苏省,南京市,建邺区",
                "浙江省,杭州市,余杭区",
                "安徽省,合肥市,庐阳区",
            ],
        }
    )
    
    df
    

    image.png

    提取城市信息:

    df["城市"] = df["地址"].str.split(",",
                                 expand=True)[1]
    df["姓"] = df["姓名"].str.split(" ",
                                 expand=True)[0]
    df
    

    image.png
    注意要加上 expand=True 参数。

    因为:

    1. expand=Falsesplit后的值是Series
    2. expand=Truesplit后的值是DataFrame

    2. 拆分成多列

    拆分成多列有两种方式:
    第一种:

    df[["省", "市", "区"]] = 
    	df["地址"].str.split(",", expand=True)
    df
    

    image.png

    第二种:这种方式不需要设置 expand=True

    df["省"], df["市"], df["区"] = 
    	zip(*df["地址"].str.split(","))
    df
    

    image.png

    3. 使用正则拆分

    除了直接按照字符来split列中的数据,也可以用正则表达式来split
    比如如下的场景,需要对客户的手机号进行保密,可以通过正则表达式来截断手机号,只保留最后四位。

    df = pd.DataFrame(
        {
            "单号": ["0001", "0002", "0003"],
            "手机号": [
                "13900000001",
                "18922233344",
                "15955566677",
            ],
        }
    )
    
    
    df["截断手机号"] = df["手机号"].str.split(
        r"\d{7}",
        expand=True,
        regex=True,
    )[1]
    df
    

    image.png

    通过正则表达式,可以更加灵活的拆分列的数据。

  • 相关阅读:
    【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-Chapter14-处理用户输入
    nodejs+vue+elementui 青少年编程在线考试系统python java php
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java招生管理系统2ij21
    MySQL索引事务——小记
    云计算安全的新挑战:零信任架构的应用
    MS Access 教程之如何将 MDB 文件转换为 SQLite 数据库
    K8s 集群部署过程文档
    计算机网络相关硬件介绍
    VE3+elementplus搭建通用管理系统实例:项目规划
    SQLite3 数据库学习(一):数据库和 SQLite 基础
  • 原文地址:https://www.cnblogs.com/wang_yb/p/17602491.html