点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

作者 | Roman Orac

转自 | 量子位    编译 | 鱼羊

数据分析,如何能错过 Pandas 。

现在,数据科学家 Roman Orac 分享了他在工作中相见恨晚的 Pandas 使用技巧。

了解了这些技巧,能让你在学习、使用 Pandas 的时候更加高效。

话不多说,一起学习一下~

   Pandas实用技巧

用 Pandas 做数据分析,最大的亮点当属 DataFrame。不过,在展示成果的时候,常常需要把 DataFrame 转成另一种格式。

Pandas 在这一点上其实十分友好,只需添加一行代码。

DataFrame 转 HTML

如果你需要用 HTML 发送自动报告,那么 to_html 函数了解一下。

比如,我们先设定这样一个 DataFrame:

import numpy as np
import pandas as pd
import randomn = 10
df = pd.DataFrame({"col1": np.random.random_sample(n),"col2": np.random.random_sample(n),"col3": [[random.randint(0, 10) for _ in range(random.randint(3, 5))] for _ in range(n)],}
)

用上 to_html,就可以将表格转入 html 文件:

df_html = df.to_html()
with open(‘analysis.html’, ‘w’) as f: f.write(df_html)

与之配套的,是 read_html 函数,可以将 HTML 转回 DataFrame。

DataFrame 转 LaTeX

如果你还没用过 LaTeX 写论文,强烈建议尝试一下。

要把 DataFrame 值转成 LaTeX 表格,也是一个函数就搞定了:

df.to_latex()

DataFrame 转 Markdown

如果你想把代码放到 GitHub 上,需要写个 README。

这时候,你可能需要把 DataFrame 转成 Markdown 格式。

Pandas 同样为你考虑到了这一点:

print(df.to_markdown())

注:这里还需要 tabulate 库

DataFrame 转 Excel

说到这里,给同学们提一个小问题:导师/老板/客户要你提供 Excel 格式的数据,你该怎么做?

当然是——

df.to_excel(‘analysis.xlsx’)

需要注意的是,如果你没有安装过 xlwt 和 openpyxl 这两个工具包,需要先安装一下。

另外,跟 HTML 一样,这里也有一个配套函数:read_excel,用来将excel数据导入pandas DataFrame。

DataFrame 转字符串

转成字符串,当然也没问题:

df.to_string()

   5个鲜为人知的Pandas技巧

此前,Roman Orac 还曾分享过 5 个他觉得十分好用,但大家可能没有那么熟悉的 Pandas 技巧。

1、data_range

从外部 API 或数据库获取数据时,需要多次指定时间范围。

Pandas 的 data_range 覆盖了这一需求。

import pandas as pd
date_from = “2019-01-01”
date_to = “2019-01-12”
date_range = pd.date_range(date_from, date_to, freq=”D”)
print(date_range)

freq = “D”/“M”/“Y”,该函数就会分别返回按天、月、年递增的日期。

2、合并数据

当你有一个名为left的DataFrame:

和名为right的DataFrame:

想通过关键字“key”把它们整合到一起:

实现的代码是:

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 pddf = 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。学会了,就用起来吧

AI学习路线和优质资源,在后台回复"AI"获取

不容错过的Pandas小技巧:万能转格式、轻松合并、压缩数据,让数据分析更高效...相关推荐

  1. pandas fillna_6个提升效率的pandas小技巧

    文章来源:towardsdatascience 作者:B.Chen 翻译\编辑:Python大数据分析 pandas是python中常用的数据分析库,出现频率非常高,而且pandas功能之多让人咋舌, ...

  2. pandas apply lambda_一分钟一个Pandas小技巧(二)

    " 在逛Kaggle的时候发现了一篇不错的Pandas技巧,我将挑选一些有用的并外加一些自己的想法分享给大家.本系列虽基础但带仍有一些奇怪操作,粗略扫一遍,您或将发现一些您需要的技巧.&qu ...

  3. 高手如何实践HBase?不容错过的滴滴内部技巧

    摘要: HBase和Phoenix的优势大家众所周知,想要落地实践却问题一堆?replication的随机发送.Connection的管理是否让你头痛不已?本次分享中,滴滴以典型的应用场景带大家深入探 ...

  4. 独家 | 11个Python Pandas小技巧让你的工作更高效(附代码实例)

    作者:Shiu-TangLi 翻译:吴振东 校对:王雨桐 本文约1800字,建议阅读6分钟. 本文为你介绍Pandas隐藏的炫酷小技巧,我相信这些会对你有所帮助. 或许本文中的某些命令你早已知晓,只是 ...

  5. 适合pythonpandas的软件_11个Python Pandas小技巧让你的工作更高效(附代码实例)

    本文为你介绍Pandas隐藏的炫酷小技巧,我相信这些会对你有所帮助. 或许本文中的某些命令你早已知晓,只是没意识到它还有这种打开方式. Pandas是一个在Python中广泛应用的数据分析包.市面上有 ...

  6. @程序员,不容错过的 Vim 实用技巧请查收!

    Vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版.一直以来,Vim 普遍被推崇为类 Vi 编辑器中最好的一个,其拥有代码补全.编译及错误跳转等诸多丰富的功能, ...

  7. pandas打印某一列_零基础学Python--不得不说的Pandas小技巧

    在前面的文章里,我介绍了如何使用Pandas去读写一个CSV文件,其实Pandas的功能还不仅仅限于此,它还可以读写Excel.Hdf.html.Json等多种文件格式.除此以外,Pandas还拥有众 ...

  8. excel小技巧之多行同样的的数据怎么填充

    excel中真是一个万能的工具哇, 下面我来给大家分享一下我最近做数据处理get到的小技巧,嘿哈! 那么下面我来说一下如果有一个数值是3,并且连着10000行的列数据都是3,要怎么填充呢? 第一种方法 ...

  9. scanner nextstring 空格_毫不起眼的小技巧,居然一分钟删除了数据中所有空格

    每天都有很多粉丝留言或私信我Excel使用中的问题,可以说是五花八门,其实问题的出路在于先要有思路,发现其中的规律,有了思路.规律,问题也就迎刃而解了.今天小编和大家分享两个小技巧: 问题背景:某天一 ...

最新文章

  1. Java 集合系列(四)—— ListIterator 源码分析
  2. android 开发环境简书,Android Studio 开发环境快速搭建
  3. Kuro and Walking Route CodeForces - 979C (树上DFS)
  4. 04. Web大前端时代之:HTML5+CSS3入门系列~HTML5 表单
  5. .net core 5 IIS Api网站部署需要注意
  6. java工程师试卷,Java工程师试卷A
  7. 连接 mysql 数据库失败频繁的原因探秘
  8. python读取身份证照片信息_Python身份证照片识别信息,python
  9. java对MP4视频编码转换为H264格式解决浏览器播放无画面问题
  10. 车牌识别项目(3)sobel算法边缘检测
  11. no artifacts configured
  12. DBLink应用速成
  13. 三分钟教你如何用Github找开源项目--值得一看!
  14. 大型医院叫号管理系统源码
  15. c语言实现去除字符串中空格
  16. 职业情商修炼的3523法
  17. 普通人如何投资区块链才不亏?
  18. 在Home Assistant 添加MariaDB数据库
  19. Unity3D中平衡类游戏player的基本应用实例
  20. 大突破!人类有望饿死癌细胞

热门文章

  1. 电子学会青少年编程等级考试Python案例10
  2. 介绍一个打怪升级练习 Python 的网站,寓教于乐~
  3. 基于聚类的图像分割(Python)
  4. 十年沉浮,用Python看创业公司消亡史
  5. CSDN 星城大巡礼,长沙“科技之星”年度企业评选正式开启
  6. 最新!百度首发 OCR 自训练平台 EasyDL OCR
  7. 如何用Jupyter Notebook制作新冠病毒疫情追踪器?
  8. 为什么鲜有炫富的程序员?看看中国各阶级收入统计表
  9. for死循环、怪异字符串、两次return……Python冷知识(三)
  10. 年度重磅:《AI聚变:2018年优秀AI应用案例TOP 20》正式发布