• pandas读取excel


    Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
    Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

    Pandas官方文档:https://pandas.pydata.org/pandas-docs/stable/
    Pandas中文文档:https://www.pypandas.cn

    一、安装包

    pandas处理Excel需要xlrd、openpyxl依赖包

    pip3 install pandas
    pip3 install xlrd
    pip3 install openpyxl

    二、创建Excel,写入数据

    import  pandas  as pd
    from pandas import DataFrame
    
    #写
    dic1 = {'标题列1': ['张三','李四'],
            '标题列2': [80, 90]
           }
    df = pd.DataFrame(dic1)
    df.to_excel('1.xlsx', index=False)

    read_excel方法说明

    pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, 
                  usecols=None, squeeze=False,dtype=None, engine=None, 
                  converters=None, true_values=None, false_values=None, 
                  skiprows=None, nrows=None, na_values=None, parse_dates=False, 
                  date_parser=None, thousands=None, comment=None, skipfooter=0, 
                  convert_float=True, **kwds)

    io:excel文件

    sheet_name:返回指定sheet,默认索引0返回第一个,也可用名称,如果返回多个则可用列表,为None则返回全表

    header:指定表头,也可用列表指定多行

    names:自定义列名,长度和Excel列长度必须一致

    index_col:用作索引的列

    usecols:读取指定的列,参数为列表,如[0,1]表示第1和第2列

    三、读取Excel

    import pandas as pd
    from pandas import DataFrame
    
    data = pd.read_excel('1.xlsx')  #
    print(data.values)  # 查看所有的值
    print(data.values[0])  # 查看第一行的值
    print(data['标题列1'].values)  # 查看某一列所有的值
    data['标题列3'] = None  # 新增列
    data.loc[3] = ['王五', 100, '']  # 新增行
    data = data.drop([0, 1], axis=0)  # 删除行:axis=0
    data.drop('标题列3', axis=1)  # 删除列:axis=1
    data.fillna(value=0, inplace=True)  # 缺失数据补
    data.fillna(method='ffill', axis=0)  # axis = 0  垂直  method=ffill 前  表示使用垂直上方的值对空值进行填充
    data.fillna(method='bfill', axis=1)  # axis = 1 水平  method=bfill  后  表示使用水平后边的值对空值进行填充
    data.dropna(subset=['hint'], inplace=True)  # 删除丢失数据
    data.sort_values(by='hint', ascending=False)  # 排序
    a = pd.concat([data, data], axis=0)  # DataFrame拼接
    a.reset_index(drop=True, inplace=True)  # 修正索引
    print(a['hint'].groupby(a['keyword']).mean())   # 按照 keyword分组 求hint平均值
    DataFrame(data).to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)  # 保存

    三、合并Excel

     两天的数据合并在一起

    import pandas as pd
    
    left = pd.DataFrame(pd.read_excel("数据.xlsx", sheet_name="5.25付费"))
    right = pd.DataFrame(pd.read_excel("数据.xlsx", sheet_name="5.26付费"))
    result = pd.merge(left, right, how='outer', on=['分类', '排名'])
    a = result.sort_values(['分类', '排名'], ascending=[False, True])
    a.to_excel('付费1.xlsx', index=False)

    四、同一个excel写入不同的sheet

    li = ['930743975', '976927698']
    with pd.ExcelWriter('20-02-05.xlsx') as writer:
        for app_id in li:
            info = [["keyword_id", "keyword"], ['11', 'aa']]
            df = pd.DataFrame(info)
            df.to_excel(writer, sheet_name=f"{app_id}", index=False, header=False)
    writer.save()
    writer.close()

    四、不同的excel写入不同的sheet

    import os
    import datetime
    import pandas as pd
    
    count = 1
    
    
    def date_info(i):
        global count
        now = datetime.datetime.now() - datetime.timedelta(days=2)
        day = now + datetime.timedelta(days=i)
        count += 1
        return (day.strftime("%Y-%m-%d"), day.strftime("%Y-%m"), day.strftime("%d"))
    
    
    for i in range(2):
        sheet_name, month, day = date_info(i)
        keywords = [["关键词", "排行1", "变动0", "指数6000", "结果数222", "上升0", "下降0"]]
        excel_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), f"{sheet_name}.xlsx")
        writer = pd.ExcelWriter(excel_path, engine='openpyxl')
        df_row = pd.DataFrame(columns=["关键词", "排行", "变动", "指数", "结果数", "上升", "下降"])
        df_row.to_excel(writer, sheet_name=f"{sheet_name}", index=False, header=False)
        keywords.insert(0, ["关键词", "排行", "变动", "指数", "结果数", "上升", "下降"])
        ds = pd.DataFrame(keywords)
        df = df_row.append(ds, ignore_index=True)
        df.to_excel(excel_path, index=False, header=False)

    学习链接

    https://www.jianshu.com/p/09d5b37118d3

  • 相关阅读:
    HBase 解决HBase Client无法连接远程HBase Server问题
    HBase的介绍与安装教程(CentOS下单机版安装、hbase shell基本用法)
    SpringBoot 使用Phoenix操作HBase教程2(使用JdbcTemplate)
    HBase Phoenix的安装使用教程1(基本介绍、安装部署)
    InfluxDB时序数据库的安装使用教程2(安装部署、命令行基本用法)
    SpringBoot 使用hbaseclient操作HBase教程1(基本用法)
    SpringBoot 使用hbaseclient操作HBase教程2(过滤器Filter)
    HBase Phoenix的安装使用教程3(SCHEMA的启用、操作、关闭)
    C#遍历enum类型
    arcengine 矢量要素编辑(转载)
  • 原文地址:https://www.cnblogs.com/clbao/p/13029508.html
Copyright © 2020-2023  润新知