iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Pandas实用的技巧分享
  • 189
分享到

Pandas实用的技巧分享

2023-06-15 19:06:28 189人浏览 泡泡鱼
摘要

这篇文章主要讲解了“pandas实用的技巧分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pandas实用的技巧分享”吧!01 使用apply拆分文本Pandas 中 apply 函数,应

这篇文章主要讲解了“pandas实用的技巧分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pandas实用的技巧分享”吧!

01 使用apply拆分文本

Pandas 中 apply 函数,应用广泛,今天要跟大家分享一个使用的技巧,使用 apply 将 dataframe 中内容为 list 的列拆分为多列。

拆分前的数据情况,如下图红色标注所示:

Pandas实用的技巧分享

拆分后,如下图所示:

Pandas实用的技巧分享

这个案例中,Lemon 使用的数据来自 akshare ,在开始前,引入相关 package :

# -*- coding: utf-8 -*-  """  @Author: Lemon  @出品:python数据之道  @Homepage: liyangbit.com  """  import numpy as np  import pandas as pd  import akshare as ak

Lemon 使用的几个 Python 库的版本信息如下:

print('numpy版本:{}'.fORMat(np.__version__))  print('pandas版本:{}'.format(pd.__version__))  print('akshare版本:{}'.format(ak.__version__)) # numpy版本:1.18.1  # pandas版本:1.0.3  # akshare版本:0.7.53

如果代码运行出现问题,请先检查下这几个Python库的版本是否与上面的一致

先从 akshare 获取需要的数据,分为两步,第一步是获取基金代码的列表,如下:

df = ak.fund_em_fund_name().head(20).tail(5)  dfdf = df[['基金代码','基金简称']]  print(df)

第二步是获取基金净值数据和净值日期,通过一个自定义函数来获取,自定义函数如下:

# 自定义函数只有一个参数的情形  # 获取基金单位净值以及净值日期  def get_mutual_fund(code):      df = ak.fund_em_open_fund_info(fund=code, indicator="单位净值走势")      dfdf = df[['净值日期', '单位净值','日增长率']]      # df.columns = ['净值日期', '单位净值', 'equityReturn', 'unitMoney']      df['净值日期'] = pd.to_datetime(df['净值日期'])      dfdf = df.sort_values('净值日期',ascending=False)      unit_equity = df.head(1)['单位净值'].values[0]      date_latest = df.head(1)['净值日期'].values[0]      return [unit_equity, date_latest]

对于这个自定义函数,在 pandas 使用 apply 来应用自定义函数,这是使用 apply 的一种常用的方法,如下:

# 获取基金最新的单位净值和净值日期  df['tmp'] = df['基金代码'].apply(get_mutual_fund)  print(df)

获取的数据截图如下:

Pandas实用的技巧分享

文本拆分

上图中的 tmp 列,就是我们这次需要进行处理的对象。

处理方法可以有多种,这里 Lemon 使用 pandas 中的 apply 来处理,相对来说,也是比较便捷的方式。

在 apply 函数中,使用 pd.Series 就可以达到我们的目的。

# 将单位净值和净值日期单独成列  df[['最新单位净值','净值日期']] = df['tmp'].apply(pd.Series)  dfdf = df.drop('tmp',axis=1)  print(df)

结果如下:

Pandas实用的技巧分享

02 有两个参数的函数

pandas 中的 apply 函数应用自定义函数时,通常情况下,都是没有参数或者一个参数,那么如果有两个参数,是否还可以使用apply函数呢?

答案是可以的。

这里我们也来探讨下。

还是以上面的案例为基础雏形,同样的,先从 akshare 获取数据

df1 = ak.fund_em_fund_name().head(20).tail(5)  df1df1 = df1[['基金代码','基金简称']]

接下来,自定义一个带有两个参数的函数,如下:

# 自定义函数有两个参数的情形  # 获取年度年底基金净值数据  def get_mutual_fund_year(code,year):      year = str(year)      df = ak.fund_em_open_fund_info(fund=code, indicator="单位净值走势")      dfdf = df[['净值日期', '单位净值', '日增长率']]      # df.columns = ['净值日期', '单位净值', 'equityReturn', 'unitMoney']      df['净值日期'] = pd.to_datetime(df['净值日期'])     dfdf = df.sort_values('净值日期',ascending=False)      dfdf = df.set_index('净值日期')[year]     dfdf = df.reset_index()      unit_equity = df.head(1)['单位净值'].values[0]      date = df.head(1)['净值日期'].values[0]      return [unit_equity,date]

带有两个参数的自定义函数

然后,使用 apply 来应用上面这个带两个参数的自定义函数,核心要点就是嵌套使用 lambda 函数,固定其中一个参数,具体如下

df1['tmp'] = df1['基金代码'].apply(lambda code: get_mutual_fund_year(code, 2019))

后续,依旧是文本拆分,实现代码如下:

# 将单位净值和净值日期单独成列  df1[['最新单位净值','净值日期']] = df1['tmp'].apply(pd.Series)  df1df1 = df1.drop('tmp',axis=1)  print(df1)

应用场景

有同学可能会问,使用两个参数的自定义函数,有什么用呢?

这里,Lemon 也分享一个应用场景:

根据上面的基础雏形数据,针对具体的年度,建立一个下拉列表,选择不同的年份时,返回不同年份的结果,包括文本数据、表格数据以及图表等。

效果如下:

Pandas实用的技巧分享

涉及到一些个人的数据,就没有完整展示啦~~

感谢各位的阅读,以上就是“Pandas实用的技巧分享”的内容了,经过本文的学习后,相信大家对Pandas实用的技巧分享这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Pandas实用的技巧分享

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

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

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

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

下载Word文档
猜你喜欢
  • Pandas实用的技巧分享
    这篇文章主要讲解了“Pandas实用的技巧分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pandas实用的技巧分享”吧!01 使用apply拆分文本Pandas 中 apply 函数,应...
    99+
    2023-06-15
  • 5个实用的Pandas技巧分享
    本篇内容主要讲解“5个实用的Pandas技巧分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“5个实用的Pandas技巧分享”吧!目录Pandas技巧1&...
    99+
    2024-04-02
  • 分享9个实用的Python技巧
    本篇内容介绍了“分享9个实用的Python技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!清理字符串输入对用户输入进行清理的问题几乎适用于...
    99+
    2023-06-16
  • Pandas中Apply函数加速百倍的技巧分享
    目录前言实验对比01 Apply(Baseline)02 Swift加速03 向量化04 类别转化+向量化05 转化为values处理实验汇总前言 虽然目前dask,cudf等包的出...
    99+
    2024-04-02
  • JS数组实用技巧分享
    本篇内容介绍了“JS数组实用技巧分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 删除数组的重复项2...
    99+
    2024-04-02
  • CSS常用的技巧分享
    这篇文章主要讲解了“CSS常用的技巧分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS常用的技巧分享”吧!Box-sizing尽管box-sizing...
    99+
    2024-04-02
  • 分享介绍Python的9个实用技巧
    本文会介绍一些Python大神用的贼溜的技巧,让一探究竟吧!欢迎收藏学习,喜欢点赞支持,欢迎畅聊。 整理字符串输入 整理用户输入的问题在编程过程中很常见。有更好的方法来解决: u...
    99+
    2024-04-02
  • 10个Elasticsearch查询的实用技巧分享
    目录前言示例1. 匹配多个词语2. 匹配某个字段中的任意一个词3. 匹配某个字段中的词语前缀4. 匹配某个字段中的词语通配符5. 匹配某个字段中的词语模糊匹配6. 匹配某个字段中的词...
    99+
    2023-05-16
    Elasticsearch查询技巧 Elasticsearch查询
  • dedecms批量替换实用技巧分享
    文章标题:DedeCMS批量替换实用技巧分享 在网站建设过程中,经常会遇到需要批量替换内容的情况,这时候就需要用到一些实用的技巧来提高效率。本文将针对DedeCMS系统的批量替换功能进...
    99+
    2024-03-13
    技巧 dedecms 批量替换 系统升级
  • MyEclipse常用的使用技巧分享
    这篇文章主要介绍“MyEclipse常用的使用技巧分享”,在日常操作中,相信很多人在MyEclipse常用的使用技巧分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyEclipse常用的使用技巧分享”的疑...
    99+
    2023-06-17
  • Vue中$once的两个实用小技巧分享
    目录前言清除定时器$once/$emit + async/await 实现 Dialog 同步执行总结前言 在 Vue 中有很多 API 都有很实用的地方,只是需要挖掘适用的场景,这...
    99+
    2024-04-02
  • Python读取CSV数据的实用技巧分享
    python 中读取 csv 数据的方法分两种:内置 csv 模块,适用于小型 csv 文件,按行迭代数据;pandas 库,提供 read_csv() 函数,可轻松将 csv 数据加载...
    99+
    2024-04-04
    python csv
  • 分享9个好用的Python技巧
    目录1.引言2.Trick 13.Trick 24.Trick35.Trick46.Trick57.Trick68.Trick79.Trick810.Trick911.总结1.引言 ...
    99+
    2024-04-02
  • linux系统常用的技巧分享
    这篇文章主要介绍“linux系统常用的技巧分享”,在日常操作中,相信很多人在linux系统常用的技巧分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux系统常用的技巧分享”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-13
  • Python中隐藏的五种实用技巧分享
    目录1. ... 对象2.解压迭代对象3.展开的艺术4.下划线 _ 变量5.多种用途的else循环异常处理1. ... 对象 没错,你没看错,就是 "....
    99+
    2024-04-02
  • 分享网站性能提升的实用技巧
    随着互联网的迅猛发展,越来越多的企业、个人都开始建立自己的网站来展示和推广自己的产品、服务或者创意。然而,网站性能的优化一直是一个重要的挑战,因为一个快速、流畅的网站能够吸引更多的访问者,提高用户体验,从而促进业务增长。本文将分...
    99+
    2024-02-03
    缓存 压缩 优化 异步加载 延迟加载
  • css布局的技巧分享
    这篇文章主要讲解了“css布局的技巧分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css布局的技巧分享”吧!1.max-width:当页面左右宽度缩小时...
    99+
    2024-04-02
  • dreamweaver的操作技巧分享
    本篇内容介绍了“dreamweaver的操作技巧分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!dreamweaver软件:点此下载&nb...
    99+
    2023-06-08
  • 分享MySQL中锁的使用技巧
    MySQL 锁的使用技巧分享随着数据库应用的日益广泛,对数据库的并发控制和数据完整性要求也越来越高。在MySQL数据库中,锁是一种重要的并发控制手段,可以有效地保护数据的完整性和一致性。本文将对MySQL锁的使用技巧进行详细分享,并提供具体...
    99+
    2023-12-21
    MySQL 技巧
  • PyCharm运行快捷键实用技巧分享
    PyCharm 是一款功能强大的 Python 集成开发环境(IDE),提供了丰富的快捷键和功能,让开发者更高效地编写和调试代码。本文将分享一些 PyCharm 运行快捷键的实用技巧,...
    99+
    2024-02-22
    运行 pycharm 快捷键
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作