python fill函数填充_python开始填充

python fill函数填充_python开始填充摘要:这篇Python开发技术栏目下的“pythondataframe向下向上填充,fillna和ffill的方法”,介绍的技术点是“DataFrame、fillna、Python、ffill、_和__、填充”,希望对大家开发技术学习和问题解决有帮助。今天小编就为大家分享一篇pythondataframe向下向上填充,fillna和ffill的方法,具有很好的参考价值,希望对大家有所帮助。一起…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

摘要:这篇Python开发技术栏目下的“python dataframe向下向上填充,fillna和ffill的方法”,介绍的技术点是“DataFrame、fillna、Python、ffill、_和__、填充”,希望对大家开发技术学习和问题解决有帮助。今天小编就为大家分享一篇python dataframe向下向上填充,fillna和ffill的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

首先新建一个dataframe:

In[8]: df = pd.DataFrame({‘name’:list(‘ABCDA’),’house’:[1,1,2,3,3],’date’:[‘2010-01-01′,’2010-06-09′,’2011-12-03′,’2011-04-05′,’2012-03-23’]})

In[9]: df

Out[9]:

date house name

0 2010-01-01 1 A

1 2010-06-09 1 B

2 2011-12-03 2 C

3 2011-04-05 3 D

4 2012-03-23 3 A

将date列改为时间类型:

In[12]: df.date = pd.to_datetime(df.date)

数据的含义是这样的,我们有ABCD四个人的数据,已知A在2010-01-01的时候,名下有1套房,B在2010-06-09的时候,名下有1套房,C在2011-12-03的时候,有2套房,D在2011-04-05的时候有3套房,A在2012-02-23的时候,数据更新了,有两套房。

要求在有姓名和时间的情况下,能给出其名下有几套房:

比如A在2010-01-01与2012-03-23期间任意一天,都应该是1套房,在2012-03-23之后,都是3套房。

我们使用pandas的fillna方法,选择ffill。

首先我们获得一个2010-01-01到2017-12-01的dataframe

In[14]: time_range = pd.DataFrame(

pd.date_range(‘2010-01-01′,’2017-12-01′,freq=’D’), columns=[‘date’]).set_index(“date”)

In[15]: time_range

Out[15]:

Empty DataFrame

Columns: []

Index: [2010-01-01 00:00:00, 2010-01-02 00:00:00, 2010-01-03 00:00:00, 2010-01-04 00:00:00, 2010-01-05 00:00:00, 2010-01-06 00:00:00, 2010-01-07 00:00:00, 2010-01-08 00:00:00, 2010-01-09 00:00:00, 2010-01-10 00:00:00, 2010-01-11 00:00:00, 2010-01-12 00:00:00, 2010-01-13 00:00:00, 2010-01-14 00:00:00, 2010-01-15 00:00:00, 2010-01-16 00:00:00, 2010-01-17 00:00:00, 2010-01-18 00:00:00, 2010-01-19 00:00:00, 2010-01-20 00:00:00, 2010-01-21 00:00:00, 2010-01-22 00:00:00, 2010-01-23 00:00:00, 2010-01-24 00:00:00, 2010-01-25 00:00:00, 2010-01-26 00:00:00, 2010-01-27 00:00:00, 2010-01-28 00:00:00, 2010-01-29 00:00:00, 2010-01-30 00:00:00, 2010-01-31 00:00:00, 2010-02-01 00:00:00, 2010-02-02 00:00:00, 2010-02-03 00:00:00, 2010-02-04 00:00:00, 2010-02-05 00:00:00, 2010-02-06 00:00:00, 2010-02-07 00:00:00, 2010-02-08 00:00:00, 2010-02-09 00:00:00, 2010-02-10 00:00:00, 2010-02-11 00:00:00, 2010-02-12 00:00:00, 2010-02-13 00:00:00, 2010-02-14 00:00:00, 2010-02-15 00:00:00, 2010-02-16 00:00:00, 2010-02-17 00:00:00, 2010-02-18 00:00:00, 2010-02-19 00:00:00, 2010-02-20 00:00:00, 2010-02-21 00:00:00, 2010-02-22 00:00:00, 2010-02-23 00:00:00, 2010-02-24 00:00:00, 2010-02-25 00:00:00, 2010-02-26 00:00:00, 2010-02-27 00:00:00, 2010-02-28 00:00:00, 2010-03-01 00:00:00, 2010-03-02 00:00:00, 2010-03-03 00:00:00, 2010-03-04 00:00:00, 2010-03-05 00:00:00, 2010-03-06 00:00:00, 2010-03-07 00:00:00, 2010-03-08 00:00:00, 2010-03-09 00:00:00, 2010-03-10 00:00:00, 2010-03-11 00:00:00, 2010-03-12 00:00:00, 2010-03-13 00:00:00, 2010-03-14 00:00:00, 2010-03-15 00:00:00, 2010-03-16 00:00:00, 2010-03-17 00:00:00, 2010-03-18 00:00:00, 2010-03-19 00:00:00, 2010-03-20 00:00:00, 2010-03-21 00:00:00, 2010-03-22 00:00:00, 2010-03-23 00:00:00, 2010-03-24 00:00:00, 2010-03-25 00:00:00, 2010-03-26 00:00:00, 2010-03-27 00:00:00, 2010-03-28 00:00:00, 2010-03-29 00:00:00, 2010-03-30 00:00:00, 2010-03-31 00:00:00, 2010-04-01 00:00:00, 2010-04-02 00:00:00, 2010-04-03 00:00:00, 2010-04-04 00:00:00, 2010-04-05 00:00:00, 2010-04-06 00:00:00, 2010-04-07 00:00:00, 2010-04-08 00:00:00, 2010-04-09 00:00:00, 2010-04-10 00:00:00, …]

[2892 rows x 0 columns]

然后用上上篇博客中提到的pivot_table将原本的df转变之后,与time_range进行merger操作。

In[16]: df = pd.pivot_table(df, columns=’name’, index=’date’)

In[17]: df

Out[17]:

house

name A B C D

date

2010-01-01 1.0 NaN NaN NaN

2010-06-09 NaN 1.0 NaN NaN

2011-04-05 NaN NaN NaN 3.0

2011-12-03 NaN NaN 2.0 NaN

2012-03-23 3.0 NaN NaN NaN

In[18]: df = df.merge(time_range,how=”right”, left_index=True, right_index=True)

然后再进行向下填充操作:

In[20]: df = df.fillna(method=’ffill’)

最后:

df = df.stack().reset_index()

结果太长,这里就不粘贴了。如果想向上填充,可选择method = ‘bfill‘

以上这篇python dataframe向下向上填充,fillna和ffill的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持Java大数据社区。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170031.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月12日 上午9:00
下一篇 2022年8月12日 上午9:00


相关推荐

  • Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)

    Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar链接:https://pan.baidu.com/s/1gci6aSIFhEhjY8F48qH39Q提取码:l289复制这段内容后打开百度网盘手机App,操作更方便哦JDK国国内官网下载地址:https://www.oracle.com/cn/java/technologies/javase-downloads.htmlJDK8国内官网下载地址:https://www.oracle.com/cn/j

    2022年7月21日
    110
  • WPF listview_wpf 数组

    WPF listview_wpf 数组网上很多方法,但是内容包含太全面,代码看上去很复杂,其实其中有很多是控制UI的在WPF中ListView的排序最基本的原理很简单就一句话ListViewControl.Items.SortDescriptions.Add(newSortDescription(“name”,ListSortDirection.Descending));就是这句,主要就是设置ListView的Items的SortDescriptions属性,这个属性是个集合,不同于我们熟悉的SQL或DataView的排序属性设置,SortD

    2022年10月3日
    7
  • cmd运行ping不是内部或外部命令_cmd中用PING命令时,出现’Ping’ 不是内部或外部命令 解决方案…

    cmd运行ping不是内部或外部命令_cmd中用PING命令时,出现’Ping’ 不是内部或外部命令 解决方案…在 cmd 中用 PING 命令时 出现 Ping 不是内部或外部命令 也不是可运行的程序或批处理文件 先了解一下内容 1 可执行文件 命令文件和批处理文件以 exe 或者 com 或者 bat 为扩展名的文件分别被称为可执行文件 命令文件和批处理文件 2 外部命令和内部命令 DOS 命令可以分为外部命令和内部命令 内部命令包含在一个名为 command com 的文件 在系统启动时候驻留在内存中 外部命令是保存在 c

    2026年3月17日
    2
  • Linux查看文件内容的5种方式

    Linux查看文件内容的5种方式Linux查看文件内容的5种方式

    2022年6月29日
    37
  • 最常用的前端开发工具(js开发工具哪个好)

    随着时间的流逝,科学的进步,我们前端也从最开始的网页设计走到了现在的界面设计。现在给大家介绍几款目前市面上最好用的前端开发工具。1、SublimeText3下载地址:https://www.sublimetext.com/功能介绍:这是一款轻量化的软件,适用于Windows、macOS和Linux。由自定义组件构建,支持多种编程语言、及语法高亮引擎,拥有优秀的代码自动完成功能。适合编程初学者使用。2、VisualstudioCode下载地址:https://code.visual

    2022年4月18日
    126
  • pycharm激活成功教程插件及过程

    pycharm激活成功教程插件及过程本人亲测 pycharm2017 3 3 的激活成功教程 本人已把下载好的专业版 pycharm 和激活成功教程插件打包 点击下载链接即可获取所有资源 链接 https pan baidu com s 1Wbw77Cf05Ya 9w 提取码 3piz1 下载激活成功教程插件 2 安装好 pycharm 然后把 JetbrainsCra 2 6 2 jar 激活成功教程补丁 放在你的安装 idea 下

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号