iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >鲜为人知的Pandas技巧有哪些
  • 372
分享到

鲜为人知的Pandas技巧有哪些

2023-06-16 17:06:17 372人浏览 安东尼
摘要

这篇文章主要介绍了鲜为人知的pandas技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Pandas为python营造了一个高水平的操作环境,还提供了便于操作的数据结

这篇文章主要介绍了鲜为人知的pandas技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Pandas为python营造了一个高水平的操作环境,还提供了便于操作的数据结构和分析工具

对于pandas新手而言,Pandas为Python编程语言营造了一个高水平的操作环境,还提供了便于操作的数据结构和分析工具。Pandas这个名字是由“面板数据”(panel  data)衍生而来,这是一个计量经济学中的术语,它是一个数据集,由同一个个体在多个时间段内所观察的结果组成。

1. 数据范围

从外部应用程序接口(api)或者数据库中抓取数据的时候,通常需要确定一个数据范围。Pandas可以很好地解决这一问题,它的data_range函数能够产出按日、月、年等方式递增的日期。

假设现在需要一组按天数递增的数据范围。

date_from ="2019-01-01"  date_to = "2019-01-12"  date_range = pd.date_range(date_from, date_to, freq="D")  date_range
鲜为人知的Pandas技巧有哪些

把产出的date_range转化为开始和结束日期,这一步可以用后续函数(subsequentfunction)完成。

for i, (date_from, date_to) inenumerate(zip(date_range[:-1], date_range[1:]), 1):  date_from = date_from.date().isofORMat()  date_to = date_to.date().isoformat()  print("%d. date_from: %s,date_to: %s" % (i, date_from, date_to))1. date_from: 2019-01-01,date_to: 2019-01-02

date_from: 2019-01-02, date_to: 2019-01-03

date_from: 2019-01-03, date_to: 2019-01-04

date_from: 2019-01-04, date_to: 2019-01-05

date_from: 2019-01-05, date_to: 2019-01-06

date_from: 2019-01-06, date_to: 2019-01-07

date_from: 2019-01-07, date_to: 2019-01-08

date_from: 2019-01-08, date_to: 2019-01-09

date_from: 2019-01-09, date_to: 2019-01-10

date_from: 2019-01-10, date_to: 2019-01-11

date_from: 2019-01-11, date_to: 2019-01-12

2. 使用指示符合并

合并两个数据集就是将它们变成一个数据集的过程,这需要根据它们的公共属性或栏来对齐其中的每一行。

合并函数中有许多arguments(对应于传递给函数的参数的类数组对象),其中指示符(indicator)argument可主要应用到合并过程中,它在左、右或者两边的数据帧(DataFrame)函数添加_merge栏,这一栏就显示了“数据行是哪里来的”。用_merge栏来处理更大的数据集会非常有用,尤其是需要检查合并操作的正确率时。

left = pd.DataFrame({"key":["key1", "key2", "key3", "key4"],"value_l": [1, 2, 3, 4]})
鲜为人知的Pandas技巧有哪些
right = pd.DataFrame({"key":["key3", "key2", "key1", "key6"],"value_r": [3, 2, 1, 6]})
鲜为人知的Pandas技巧有哪些
df_merge = left.merge(right,on='key', how='left',indicator=True)
鲜为人知的Pandas技巧有哪些

_merge栏可以用来检查是否得到了我们预期的行数,而且它反映的是来自两个数据框架的预期值。

df_merge._merge.value_counts()both 3  left_only 1  right_only 0  Name: _merge, dtype: int64

3. 最近合并(Nearest merge)

在处理像股票或者加密货币一类的金融数据时,还需要把报价(价格变化)与实际交易结合。现在,假设目的是希望将每笔交易与之前几毫秒产生的报价合并起来。Pandas有一个merge_asof函数,它能够通过最近的key(本文中指时间戳)来合并数据框架。有关报价和交易的数据集可以从pandas实例中获得。

报价数据框架包含了不同股票的价格变化。通常情况下,报价要比交易多得多。

quotes = pd.DataFrame(  [  ["2016-05-2513:30:00.023", "GoOG", 720.50, 720.93],  ["2016-05-2513:30:00.023", "MSFT", 51.95, 51.96],  ["2016-05-2513:30:00.030", "MSFT", 51.97, 51.98],  ["2016-05-2513:30:00.041", "MSFT", 51.99, 52.00],  ["2016-05-2513:30:00.048", "GOOG", 720.50, 720.93],  ["2016-05-2513:30:00.049", "AAPL", 97.99, 98.01],  ["2016-05-2513:30:00.072", "GOOG", 720.50, 720.88],  ["2016-05-2513:30:00.075", "MSFT", 52.01, 52.03],  ],  columns=["timestamp","ticker", "bid", "ask"],  )  quotes['timestamp'] = pd.to_datetime(quotes['timestamp'])
鲜为人知的Pandas技巧有哪些

交易数据框架包含了不同股票的交易信息。

trades = pd.DataFrame(  [  ["2016-05-2513:30:00.023", "MSFT", 51.95, 75],  ["2016-05-2513:30:00.038", "MSFT", 51.95, 155],  ["2016-05-2513:30:00.048", "GOOG", 720.77, 100],  ["2016-05-2513:30:00.048", "GOOG", 720.92, 100],  ["2016-05-2513:30:00.048", "AAPL", 98.00, 100],  ],  columns=["timestamp","ticker", "price", "quantity"],  )  trades['timestamp'] = pd.to_datetime(trades['timestamp'])
鲜为人知的Pandas技巧有哪些

通过股价报告(tickers)可以合并交易和报价信息,报告中报价可能只比交易迟了10毫秒。如果报价的时间差长于10毫秒,或者没有报价,任何出价和询问报价都是无效的(以苹果股价报告*为例)。

*苹果股价报告:AAPL ticker。

pd.merge_asof(trades,quotes, on="timestamp", by='ticker', tolerance=pd.Timedelta('10ms'),direction='backward')
鲜为人知的Pandas技巧有哪些

4. 创建Excel报告

鲜为人知的Pandas技巧有哪些

Pandas和XlsxWriter库同时使用能够帮助我们创建基于数据框架的excel  报告。这能节省很多时间,不用再花时间先把数据框架存为csv格式,然后再导入Excel排版。还可以直接加入各种图表等多种便捷操作。

df = pd.DataFrame(pd.np.array([[1,2, 3], [4, 5, 6], [7, 8, 9]]), columns=["a", "b","c"])

以下的一小段代码就创建了一个Excel报告。要想将一个数据框架存储到Excel文件,需要反注释writer.save()行。

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)  # writer.save()

正如前文中提到的那样,这个数据库也支持添加图表到Excel报告中。这需要确定图表的类型(本文中是线形图表)以及图表所反映的数据序列,注意,这些数据序列应位于Excel的电子表格程序里(spreadsheet)。

# define the workbook  workbook= writer.book  worksheet = writer.sheets[sheet_name]# create a chart lineobject  chart = workbook.add_chart({'type': 'line'})# configurethe 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()

5. 节省磁盘空间

同时处理几个数据科学项目,结束后通常会有很多从不同实验中得到的预处理数据集。这样笔记本电脑的固态硬盘很快就会被这些数据塞满。Pandas在保存数据集时发挥作用,压缩数据,读取这些数据时又是解压形式。

不妨创建一个随机数字的大Pandas数据框架。

df = pd.DataFrame(pd.np.random.randn(50000,300))
鲜为人知的Pandas技巧有哪些

如果把这个文件存为csv格式,它会占掉硬盘驱动器上300MB的空间。

df.to_csv('random_data.csv',index=False)

通过一个compression=‘gzip’argument,就可以将文件大小缩至136MB。

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

同时,在数据框架上读取gzipped数据也很容易,所以功能上并不会有任何损失。

df = pd.read_csv('random_data.gz')

感谢你能够认真阅读完这篇文章,希望小编分享的“鲜为人知的Pandas技巧有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 鲜为人知的Pandas技巧有哪些

本文链接: https://www.lsjlt.com/news/284534.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 鲜为人知的Pandas技巧有哪些
    这篇文章主要介绍了鲜为人知的Pandas技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Pandas为Python营造了一个高水平的操作环境,还提供了便于操作的数据结...
    99+
    2023-06-16
  • JavaScript中有哪些鲜为人知的技巧
    本篇内容介绍了“JavaScript中有哪些鲜为人知的技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!v...
    99+
    2024-04-02
  • Swift鲜为人知的特性有哪些
    这篇文章主要讲解了“Swift鲜为人知的特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Swift鲜为人知的特性有哪些”吧!考虑这样一种常见情况:在没有遇到任何错误的情况下,要启动网...
    99+
    2023-06-16
  • 鲜为人知的Python功能有哪些
    这篇文章主要介绍鲜为人知的Python功能有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!divmod这是一个非常有用的函数。函数的作用是:对两个数执行模除%运算,然后返回商和余数。例如:divmod(5,&nb...
    99+
    2023-06-16
  • 不为人知的CSS经典技巧有哪些
    这篇文章给大家介绍不为人知的CSS经典技巧有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。你对CSS使用技巧是否了解,这里和大家分享一下,主要包括CSSborder的缺省值,CSS...
    99+
    2024-04-02
  • 探索Swagger的隐秘世界:鲜为人知的技巧与诀窍
    Swagger是一个开放源代码的框架,旨在使API的开发、维护和使用更加容易。它提供了一套完整的工具,用于生成API文档、生成API客户端代码,并测试API。 使用Swagger Hub管理多个API Swagger Hub是一个在...
    99+
    2024-02-25
    Swagger API 文档 生成 测试
  • Pandas的使用技巧有哪些
    这篇文章主要介绍了Pandas的使用技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Pandas的使用技巧有哪些文章都会有所收获,下面我们一起来看看吧。Pandas是一个强大的分析结构化数据的工具集;它...
    99+
    2023-06-27
  • Node.js 模板引擎的秘密武器:揭晓鲜为人知的技巧
    ...
    99+
    2024-04-02
  • Pandas使用技巧有哪些
    小编给大家分享一下Pandas使用技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.行的条件选择首先,数据探索是必要步骤。Pandas为进行各种分析提供...
    99+
    2023-06-27
  • Windows系统中鲜为人知的八大保密技巧详细介绍
           Windows自带的功能,为了方便我们的使用,有自动记录的功能,但是这些功能有些事情也把我们的“行踪”给暴露了,这个时候应...
    99+
    2023-05-31
    Windows 保密技巧 技巧 系统 保密
  • HTML 有序列表:15 个鲜为人知的技巧,让你的网站脱颖而出
    使用不同的列表样式: HTML 有序列表提供多种内置的列表样式,包括数字、字母、罗马数字等。您可以使用不同的列表样式来创建更具视觉吸引力的列表。 设置列表项的起始值: 您可以使用 start 属性来设置列表项的起始值。例如,如果...
    99+
    2024-02-22
    HTML 有序列表 列表样式 编号列表 交互性
  • 微信的这些不为人知的小技巧,你都知道哪些呢?
      随着科技的发展,手机在生活越来越重要,微信渐渐成为我们生活中沟通的重要媒介。现在很多的中老年人也开始使用微信了,但是微信上有很多功能,他们都不会使用,如果我们不在他们的身边,他们又想使用微信的话,那...
    99+
    2024-04-02
  • MySQL中一些鲜为人知的排序方式
    前言 ORDER BY 字段名 升序/降序,相信进来的朋友都认识这个排序语句,但遇到一些特殊的排序,单单使用字段名就无法满足需求了,下面给大家介绍几个我遇到过的排序方法: 一、准备工...
    99+
    2024-04-02
  • 揭秘数据库性能调优的奥秘:10个鲜为人知的技巧
    数据库性能调优是一项复杂且艰巨的任务,需要DBA花费大量的时间和精力。本文将介绍10个鲜为人知的数据库性能调优技巧,帮助DBA轻松提升数据库性能。 索引优化是数据库性能调优最有效的手段之一。DBA应根据实际业务场景和数据分布情况,合理...
    99+
    2024-02-10
    数据库性能调优,SQL优化,索引,查询优化
  • Python集合进阶技巧:探索鲜为人知的功能,提升编程效率
    一、利用set的交集、并集、差集和对称差集进行集合操作 Python的set数据结构提供了交集(&)、并集(|)、差集(-)和对称差集(^)等操作,可以轻松地对集合进行操作。 # 创建两个集合 set1 = {1, 2, 3, ...
    99+
    2024-02-02
    Python 集合 set dict list tuple
  • Python:鲜为人知的功能特性(下)
    GitHub 上有一个名为《What the f*ck Python!》的项目,这个有趣的项目意在收集 Python 中那些难以理解和反人类直觉的例子以及鲜为人知的功能特性,并尝试讨论这些现象背后真正的原理! 原版地址:https://...
    99+
    2023-01-30
    鲜为人知 特性 功能
  • Javascript中Microtask和Macrotask鲜为人知的知识点
    首先我们来看一道题目,如下javascript代码,执行后会在控制台打印出什么内容? async function async1() { console.log('async1...
    99+
    2024-04-02
  • ASP Performance Monitor收藏集:10个鲜为人知的技巧来超越你的竞争对手
    : ASP Performance Monitor收藏集包含了一系列鲜为人知的技巧,可以帮助你超越竞争对手。这些技巧将帮助你识别和修复ASP.NET应用程序中的性能瓶颈,从而提高应用程序的速度和响应能力。 1. 使用内置的ASP.NET性...
    99+
    2024-02-05
    :ASP Performance Monitor 表现 性能提升 提升速度 性能瓶颈 应用程序 响应
  • 令人震惊的HTML技巧有哪些
    这篇文章主要介绍了令人震惊的HTML技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇令人震惊的HTML技巧有哪些文章都会有所收获,下面我们一起来看看吧。1. 捕获属性打开你的设备摄像头正如 input ...
    99+
    2023-07-06
  • 使用Numpy与Pandas的高效技巧有哪些
    本篇内容介绍了“使用Numpy与Pandas的高效技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Numpy 的 6 种高效函数首先...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作