最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python dataframe向下向上填充,fillna和ffill的方法

 更新時間:2018年11月28日 12:19:50   作者:chenKFKevin  
今天小編就為大家分享一篇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)

數(shù)據(jù)的含義是這樣的,我們有ABCD四個人的數(shù)據(jù),已知A在2010-01-01的時候,名下有1套房,B在2010-06-09的時候,名下有1套房,C在2011-12-03的時候,有2套房,D在2011-04-05的時候有3套房,A在2012-02-23的時候,數(shù)據(jù)更新了,有兩套房。

要求在有姓名和時間的情況下,能給出其名下有幾套房:

比如A在2010-01-01與2012-03-23期間任意一天,都應(yīng)該是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轉(zhuǎn)變之后,與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()

結(jié)果太長,這里就不粘貼了。如果想向上填充,可選擇method = 'bfill‘

以上這篇python dataframe向下向上填充,fillna和ffill的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • PyCharm+PyQt5+QtDesigner配置詳解

    PyCharm+PyQt5+QtDesigner配置詳解

    這篇文章主要介紹了PyCharm+PyQt5+QtDesigner配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python實現(xiàn)將絕對URL替換成相對URL的方法

    Python實現(xiàn)將絕對URL替換成相對URL的方法

    這篇文章主要介紹了Python實現(xiàn)將絕對URL替換成相對URL的方法,涉及Python字符串操作及正則匹配的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 詳解Python裝飾器 給你的咖啡加點料

    詳解Python裝飾器 給你的咖啡加點料

    今天你的咖啡加糖了嗎? 讓我們通過一個簡單的例子來引出裝飾器的概念及用法。在引出裝飾器之前,我們先來了解一下函數(shù)的概念,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 在Python3中初學(xué)者應(yīng)會的一些基本的提升效率的小技巧

    在Python3中初學(xué)者應(yīng)會的一些基本的提升效率的小技巧

    這篇文章主要介紹了在Python3中的一些基本的小技巧,有利于剛剛上手Python的初學(xué)者提升開發(fā)效率,需要的朋友可以參考下
    2015-03-03
  • Python自然語言處理詞匯分析技術(shù)實戰(zhàn)

    Python自然語言處理詞匯分析技術(shù)實戰(zhàn)

    這篇文章為大家介紹了Python自然語言處理詞匯分析技術(shù)實戰(zhàn),主要對詞匯分析進行介紹,一些語言方面的基礎(chǔ)知識(詞性、詞語規(guī)范化),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2024-01-01
  • Python私有屬性私有方法應(yīng)用實例解析

    Python私有屬性私有方法應(yīng)用實例解析

    這篇文章主要介紹了Python私有屬性私有方法應(yīng)用場景解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 適合Python項目的五大SQL連接器

    適合Python項目的五大SQL連接器

    這篇文章,將要介紹當(dāng)前流行的、適合大多數(shù)Python程序員的、五大Python SQL數(shù)據(jù)庫連接器,并討論它們安裝和各種的優(yōu)缺點。需要的噴朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 解讀Python中degrees()方法的使用

    解讀Python中degrees()方法的使用

    這篇文章主要介紹了Python中degrees()方法的使用,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python http服務(wù)flask架構(gòu)實用代碼詳解分析

    python http服務(wù)flask架構(gòu)實用代碼詳解分析

    本篇文章主要分享一個python的簡單http服務(wù)flask架構(gòu)。目前主流的python的服務(wù)框架有django、flask,相較于django來說,flask更小巧玲瓏。至于并發(fā)的問題,使用了gevent協(xié)程io進行處理
    2021-10-10
  • Python圖像處理庫PIL的ImageFont模塊使用介紹

    Python圖像處理庫PIL的ImageFont模塊使用介紹

    這篇文章主要介紹了Python圖像處理庫PIL的ImageFont模塊使用介紹,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評論

克东县| 福海县| 崇义县| 衡阳市| 凯里市| 昌都县| 五家渠市| 金沙县| 湘阴县| 临清市| 兴山县| 房产| 收藏| 万全县| 花莲县| 绥中县| 石屏县| 镇赉县| 龙江县| 临泽县| 平果县| 高雄市| 尤溪县| 太仓市| 贡嘎县| 泾川县| 林州市| 保定市| 洪洞县| 阿坝| 法库县| 永平县| 邵阳县| 云安县| 乌海市| 寿光市| 都兰县| 安塞县| 滦平县| 沅江市| 双峰县|