• Python处理Excel表格


    raw_data_jiangxiang = pd.read_excel(accord_path, header=None)
    raw_data_mingzi = pd.read_excel(name_path, header=None)
    mingzi = raw_data_mingzi.values[:, 1:2]
    jiangxiangmingzi = raw_data_jiangxiang.values[:, 7:8]
    
    • 1
    • 2
    • 3
    • 4

    pandas读取出来的是Series或者DataFrame,DataFrame是一列列Series加起来的。
    二者区别就是一个一维,一个二维。
    .values会读出来ndarrary的形式。从而进行处理。
    print(jiangxiangmingzi)
    [ [‘学生信息’]
    [‘2020112001张,2020112001晏’]… ]
    我们可以看到组织形式,首先是ndarray的形式,而不是list,因为项与项之间没有,,也可以发现同类型元素是一个小的ndarray,存放着一个字符串类型。
    所以:jiangxiangmingzi[i]是每一项ndarray:[‘2020112001张,2020112001晏’]
    jiangxiangmingzi[i][0]是该项的内容'2020112001张,2020112001晏'

    菜鸟教程
    使用list创建DataFrame

    import pandas as pd
    data = [['Google',10],['Runoob',12],['Wiki',13]]
    df = pd.DataFrame(data,columns=['Site','Age'],dtype=float)
    print(df)
    
    • 1
    • 2
    • 3
    • 4

    使用ndarray创建DataFrame

    import pandas as pd
    data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}
    df = pd.DataFrame(data)
    print (df)
    
    • 1
    • 2
    • 3
    • 4

    上面是符合逻辑的,list的特性是内容的数据类型可以不同,所以每一项就是一行。
    ndarray 对象是用于存放同类型元素的多维数组。所以是按照列来组织的。(默认一列的数据类型是一样的)

    import pandas as pd
    accord_path = r'C:\Users\97246\Desktop\jiang.xlsx'
    name_path = r'C:\Users\97246\Desktop\number.xls'
    
    raw_data_jiangxiang = pd.read_excel(accord_path, header=None)
    raw_data_mingzi = pd.read_excel(name_path, header=None)
    mingzi = raw_data_mingzi.values[:, 1:2]
    jiangxiangmingzi = raw_data_jiangxiang.values[:, 7:8]
    rows = jiangxiangmingzi.shape[0]
    judege = []
    for i in range(rows):
        is_need = False
        print(jiangxiangmingzi[i][0])
        for k in jiangxiangmingzi[i][0].split(','):
            print(k)
            if len(k) > 10:
                k = k[12:]
            print(k)
            if k in mingzi:
                is_need = True
                break
        if is_need:
            judege.append(i)
    # 使用list存储方法。
    siftedthrough_data = []
    for i in judege:
        siftedthrough_data.append(raw_data_jiangxiang.iloc[i])
    df = pd.DataFrame(siftedthrough_data)
    print(df)
    df.to_excel(r'C:\Users\97246\Desktop\党员.xlsx', index=False)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    【运维知识进阶篇】Ansible自动化运维-ad-hoc详解
    【JavaWeb - 网页编程】七 HTTP 协议 与 Servlet 技术
    Mybatis注解开发
    Leetcode—34.在排序数组中查找元素的第一个和最后一个位置【中等】
    Spring框架(九):Spring注解开发Annotation
    报错“this.bookDao“ is null
    电商项目part10 高并发缓存实战
    FlyBird
    vue支付项目-APP支付宝支付功能
    Bootstrap的媒体对象组件(图文展示组件),挺有用的一个组件。
  • 原文地址:https://blog.csdn.net/IsayIwant/article/details/134510850