您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    不容错过的Pandas小技巧:万能转格式、轻松兼并、紧缩数据(2)
    时间:2020-03-19 12:02 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    不容错过的Pandas小技巧:万能转格式、轻松兼并、紧缩数据

    完成的代码是:

    df_merge = left.merge(right, on = ‘key’, how = ‘left’, indicator = True) 

    3、最近兼并(Nearest merge)

    在处置股票或许加密货币这样的财务数据时,价钱会随着实践买卖变化。

    针对这样的数据,Pandas提供了一个好用的功用,merge_asof

    该功用可以经过最近的key(比如时间戳)兼并DataFrame。

    举个例子,你有一个存储报价信息的DataFrame。

    还有一个存储买卖信息的DataFrame。

    不容错过的Pandas小技巧:万能转格式、轻松兼并、紧缩数据

    如今,你需求把两个DataFrame中对应的信息兼并起来。

    最新报价和买卖之间能够有10毫秒的延迟,或许没有报价,在停止兼并时,就可以用上 merge_asof。

    pd.merge_asof(trades, quotes, on=”timestamp”, by=’ticker’, tolerance=pd.Timedelta(‘10ms’), direction=‘backward’) 

    不容错过的Pandas小技巧:万能转格式、轻松兼并、紧缩数据

    4、创立Excel报告

    在Pandas中,可以直接用DataFrame创立Excel报告。

    import numpy as np 

    import pandas as pd 

     

    df = pd.DataFrame(np.array([[123], [456], [789]]), columns=["a""b""c"]) 

     

    report_name = 'example_report.xlsx' 

    sheet_name = 'Sheet1' 

    writer = pd.ExcelWriter(report_name, engine='xlsxwriter'

    df.to_excel(writer, sheet_name=sheet_name, index=False) 

    不只是数据,还可以添加图表。

    # define the workbook 

    workbook = writer.book 

    worksheet = writer.sheets[sheet_name] 

    # create a chart line object 

    chart = workbook.add_chart({'type''line'}) 

    # configure the series of the chart from the spreadsheet 

    # using a list of values instead of category/value formulas: 

    #     [sheetname, first_row, first_col, last_row, last_col] 

    chart.add_series({ 

        'categories': [sheet_name, 1030], 

        'values':     [sheet_name, 1131], 

    }) 

    # configure the chart axes 

    chart.set_x_axis({'name''Index''position_axis''on_tick'}) 

    chart.set_y_axis({'name''Value''major_gridlines': {'visible': False}}) 

    # place the chart on the worksheet 

    worksheet.insert_chart('E2', chart) 

    # output the excel file 

    writer.save() 

    注:这里需求 XlsxWriter 库

    5、节省磁盘空间

    Pandas在保存数据集时,可以对其停止紧缩,其后以紧缩格式停止读取。

    先搞一个 300MB 的 DataFrame,把它存成 csv。

    df = pd.DataFrame(pd.np.random.randn(50000,300)) 

    df.to_csv(‘random_data.csv’, index=False) 

    紧缩一下试试:

    df.to_csv(‘random_data.gz’, compression=’gzip’, index=False) 

    文件就变成了136MB。

    gzip紧缩文件可以直接读取:

    df = pd.read_csv(‘random_data.gz’) 

    这一份Pandas技巧笔记,暂且说到这里。各位同窗都做好笔记了吗?

    Talk is cheap, show me the code。学会了,就用起来吧

    【编辑引荐】

    代码变油画,精细到毛发,前端小姐姐只用HTML+CSS,让美术也惊叹

    谷歌重磅开源新技术:5行代码打造有限宽神经网络模型

    微软推出新网站向开发者引荐WinUI开源框架

    微软GitHub收买npm或成最大赢家!开源界野蛮竞争影响1200万开发者

    Uber 开源 Piranha,可自动删除过时代码

    (责任编辑:admin)