完成的代码是:
df_merge = left.merge(right, on = ‘key’, how = ‘left’, indicator = True)
3、最近兼并(Nearest merge)
在处置股票或许加密货币这样的财务数据时,价钱会随着实践买卖变化。
针对这样的数据,Pandas提供了一个好用的功用,merge_asof。
该功用可以经过最近的key(比如时间戳)兼并DataFrame。
举个例子,你有一个存储报价信息的DataFrame。
还有一个存储买卖信息的DataFrame。
如今,你需求把两个DataFrame中对应的信息兼并起来。
最新报价和买卖之间能够有10毫秒的延迟,或许没有报价,在停止兼并时,就可以用上 merge_asof。
pd.merge_asof(trades, quotes, on=”timestamp”, by=’ticker’, tolerance=pd.Timedelta(‘10ms’), direction=‘backward’)
4、创立Excel报告
在Pandas中,可以直接用DataFrame创立Excel报告。
import numpy as np
import pandas as pd
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), 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, 1, 0, 3, 0],
'values': [sheet_name, 1, 1, 3, 1],
})
# 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)