Pandas 的这个知识点,估计 80% 的人都得挂!

刘早起 2021-01-21 09:54:17
pandas 知识 知识点 的人 估计


大家好,我是 早起,今天来跟大家分享下 pandas 中 apply 函数的一个技巧。

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

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

拆分后,如下图所示:

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

import pandas as pd
import akshare as ak

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

print(ak.__version__)
0.7.22
print(pd.__version__)
1.1.4

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

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

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

# 获取基金单位净值以及净值日期
def get_mutual_fund(code):
df = ak.fund_em_open_fund_info(fund=code, indicator="单位净值走势")
df.columns = ['净值日期', '单位净值', 'equityReturn', 'unitMoney']
df['净值日期'] = pd.to_datetime(df['净值日期'])
df = 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)

获取的数据截图如下:

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

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

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

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

结果如下:

看起来复杂的问题,解决起来也很便捷,是不是很容易啊,赶紧用起来吧。

-END-

本文分享自微信公众号 - 早起Python(zaoqi-python)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间: 2021-01-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

版权声明
本文为[刘早起]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1776769

  1. Python 爬虫进阶 - 前后端分离有什么了不起,过程超详细!
  2. 【python】使用pip提示ModuleNotFoundError
  3. 【python】虚拟环境搭建
  4. Advanced test | Python written test questions
  5. Fire! Open source Python ticket grabbing artifact, come home to see this wave of New Year!
  6. Python crawler advanced - before and after the end of the separation of what great, super detailed process!
  7. [Python] prompt modulenotfounderror with PIP
  8. Building a virtual environment
  9. Serverless 架构下用 Python 轻松搞定图像分类和预测
  10. Easy image classification and prediction with Python under serverless architecture
  11. python协程爬取某网站的老赖数据
  12. Python coroutine crawls Laolai data of a website
  13. 使用Python分析姿态估计数据集COCO的教程
  14. Using Python to analyze the data set coco of attitude estimation
  15. win环境 python3 flask 上手整理 环境搭建(一)
  16. Getting started with win environment python3 flash
  17. Python实现一个论文下载器,赶紧收藏
  18. win环境 python3 flask 上手整理 快速上手-基础操作(二)
  19. Python 中常见的配置文件写法
  20. Python to achieve a paper Downloader, quickly collect
  21. Python批量 png转ico
  22. 使用line_profiler对python代码性能进行评估优化
  23. 使用line_profiler对python代码性能进行评估优化
  24. Getting started with Python 3 flash in win environment
  25. Common ways to write configuration files in Python
  26. Python会在2021年死去吗? Python 3.9最终版本的回顾
  27. Python batch PNG to ICO
  28. Using line_ Profiler evaluates and optimizes the performance of Python code
  29. Using line_ Profiler evaluates and optimizes the performance of Python code
  30. Will Python die in 2021? A review of the final version of Python 3.9
  31. Python3 SMTP send mail
  32. Understanding closures in Python: getting started with closures
  33. Python日志实践
  34. Python logging practice
  35. [python opencv 计算机视觉零基础到实战] 十、图片效果毛玻璃
  36. [python opencv 计算机视觉零基础到实战] 九、模糊
  37. 10. Picture effect ground glass
  38. [Python opencv computer vision zero basis to actual combat] 9. Fuzzy
  39. 使用line_profiler對python程式碼效能進行評估優化
  40. Using line_ Profiler to evaluate and optimize the performance of Python code
  41. LeetCode | 0508. 出现次数最多的子树元素和【Python】
  42. Leetcode | 0508
  43. LeetCode | 0530. 二叉搜索树的最小绝对差【Python】
  44. LeetCode | 0515. 在每个树行中找最大值【Python】
  45. Leetcode | 0530. Minimum absolute difference of binary search tree [Python]
  46. Leetcode | 0515. Find the maximum value in each tree row [Python]
  47. 我来记笔记啦-搭建python虚拟环境
  48. Let me take notes - building a python virtual environment
  49. LeetCode | 0513. 找树左下角的值【Python】
  50. Leetcode | 0513. Find the value in the lower left corner of the tree [Python]
  51. Python OpenCV 泛洪填充,取经之旅第 21 天
  52. Python opencv flood fill, day 21
  53. Python爬虫自学系列(二)
  54. Python crawler self study series (2)
  55. 【python】身份证号码有效性检验
  56. [Python] validity test of ID number
  57. Python ORM - pymysql&sqlalchemy
  58. Python ORM - pymysql&sqlalchemy
  59. centos7 安装python3.8
  60. centos7 安装python3.8