美文网首页
Python-科学计算-pandas-09-df列字符串操作2

Python-科学计算-pandas-09-df列字符串操作2

作者: Data_Python_VBA | 来源:发表于2020-03-15 08:53 被阅读0次

    微信公众号原文

    系统:Windows 7
    语言版本:Anaconda3-4.3.0.1-Windows-x86_64
    编辑器:pycharm-community-2016.3.2
    pandas:0.19.2

    • 这个系列讲讲Python的科学计算版块
    • 今天讲讲pandas模块:对列的每一个元素进行同样的字符串操作
    • 今天讲其中的1个操作:split

    Part 1:目标

    1. 已知Df某列都是字符串,每一个字符串都有一个文件与其对应,需要对原文件名称进行修改
    2. 存在以下规律:
      • 原文件名格式P10-CD1.txt,只保留-前的文件名部分,新文件名P10.txt
    3. 实现方式:
      • 获取 - 前文件名
      • 获取 . 后的文件类型
      • 组合两者
      • 加入到原来的Df中

    修改前后文件名

    1.png

    Part 2:代码

    import pandas as pd
    
    dict_1 = {"file_name": ["P10-CD1.txt", "P252-12EF.pdf", "P369-96BD.txt",
                            "P4-G852F.pdf", "P5-H225D.txt", "P657-36LF.pdf"],
              "order_id": [1, 2, 3, 4, 5, 6]}
    
    df_1 = pd.DataFrame(dict_1, columns=["file_name", "order_id"])
    print("初始DF:\n", df_1)
    
    print("\n")
    df_2 = df_1["file_name"].str.split("-", expand=True)
    df_2.columns = ["文件名", "其它"]
    print("获取新的文件名:\n", df_2)
    
    print("\n")
    df_3 = df_1["file_name"].str.split(".", expand=True)
    df_3.columns = ["其它", "文件类型"]
    print("获取文件类型:\n", df_3)
    
    print("\n")
    se_1 = df_2["文件名"] + "." + df_3["文件类型"]
    print("新的文件名:\n", se_1)
    print(type(se_1))
    
    print("\n")
    df_1["new_file_name"] = se_1
    print("加入新的文件名:\n", df_1)
    print(type(df_1))
    
    
    

    代码截图

    2.png

    执行结果

    3.png

    Part 3:部分代码解读

    1. df_2 = df_1["file_name"].str.split("-", expand=True),对列file_name的每个元素实行split("-")操作,理论上生成一个列表,expand=True表示将生成列表结果分为多个列
    2. se_1 = df_2["文件名"] + "." + df_3["文件类型"],实现两个Df之间对应每个元素的字符串连接操作,生成一个Series对象
    3. df_1["new_file_name"] = se_1,df_1新增一列new_file_name

    本文为原创作品,欢迎分享朋友圈

    长按图片识别二维码,关注本公众号
    Python 优雅 帅气


    12x0.8.jpg

    相关文章

      网友评论

          本文标题:Python-科学计算-pandas-09-df列字符串操作2

          本文链接:https://www.haomeiwen.com/subject/ugcxehtx.html