Pandas使用DataFrame進行資料分析比賽進階之路(二):日期資料處理:按日期篩選、顯示及統計資料
首先,表格的資料格式如下:
1、獲取某年某月資料
data_train = pd.read_csv('data/train.csv')
# 將資料型別轉換為日期型別
data_train['date'] = pd.to_datetime(data_train['date'])
# 將date設定為index
df = data_train.set_index('date')
# 獲取某年的資料
print(df['2010'].head())
# 獲取某月的資料
print(df['2013-11'].head())
輸出結果:
id questions answers
date
2010-10-01 1 742 1561
2010-10-02 2 400 783
2010-10-03 3 388 771
2010-10-04 4 762 1474
2010-10-05 5 821 1639
id questions answers
date
2013-11-01 1128 3401 6858
2013-11 -02 1129 2626 5467
2013-11-03 1130 2703 5557
2013-11-04 1131 3602 6941
2013-11-05 1132 3741 7312
2、獲取某個時期之前或之後的資料
# 獲取某個時期之前或之後的資料
# 獲取2014年以後的資料
print(df.truncate(before='2014').head())
# 獲取2013-11之前的資料
print(df.truncate(after='2013-11').head())
# 獲取2016-02年以後的資料
print (df.truncate(before='2016-02').head())
# 獲取2016-02-2年以後的資料
print(df.truncate(before='2016-02-2').head())
輸出結果:
id questions answers
date
2014-01-01 1189 2586 5576
2014-01-02 1190 3541 7175
2014-01-03 1191 3655 7395
2014-01-04 1192 2947 6099
2014-01-05 1193 2847 5935
id questions answers
date
2010-10-01 1 742 1561
2010-10-02 2 400 783
2010-10-03 3 388 771
2010-10-04 4 762 1474
2010-10-05 5 821 1639
id questions answers
date
2016-02-01 1950 5434 10398
2016-02-02 1951 5650 10795
2016-02-03 1952 5744 10879
2016-02-04 1953 5666 10886
2016-02-05 1954 5371 10508
id questions answers
date
2016-02-02 1951 5650 10795
2016-02-03 1952 5744 10879
2016-02-04 1953 5666 10886
2016-02-05 1954 5371 10508
2016-02-06 1955 4296 8800
3、按某個指標顯示,但不統計
# 按月顯示,但不統計
df_period_M = df.to_period('M').head()
print(df_period_M)
# 按季度顯示,但不統計
df_period_Q = df.to_period('Q').head()
print(df_period_Q)
# 按年度顯示,但不統計
df_period_A = df.to_period('A').head()
print(df_period_A)
輸出結果:
id questions answers
date
2010-10 1 742 1561
2010-10 2 400 783
2010-10 3 388 771
2010-10 4 762 1474
2010-10 5 821 1639
id questions answers
date
2010Q4 1 742 1561
2010Q4 2 400 783
2010Q4 3 388 771
2010Q4 4 762 1474
2010Q4 5 821 1639
id questions answers
date
2010 1 742 1561
2010 2 400 783
2010 3 388 771
2010 4 762 1474
2010 5 821 1639
4、按某個指標顯示,並且統計
# 按年統計並顯示
print(df.resample('AS').sum().to_period('A'))
# 按季度統計並顯示
print(df.resample('Q').sum().to_period('Q').head())
# 按月度統計並顯示
print(df.resample('M').sum().to_period('M').head())
# 按月度統計並顯示
print(df.resample('W').sum().to_period('W').head())
輸出結果:
id questions answers
date
2010 4278 74363 153006
2011 100375 535290 1091651
2012 234423 862831 1718434
2013 367190 1179155 2320421
2014 500415 1487677 2876611
2015 633640 1734023 3368264
2016 698810 1808649 3476335
id questions answers
date
2010Q4 4278 74363 153006
2011Q1 12375 105858 217767
2011Q2 20748 127873 260836
2011Q3 29394 144424 293853
2011Q4 37858 157135 319195
id questions answers
date
2010-10 496 22218 44882
2010-11 1395 25418 52841
2010-12 2387 26727 55283
2011-01 3348 31502 65477
2011-02 3850 33240 67627
id questions answers
date
2010-09-27/2010-10-03 6 1530 3115
2010-10-04/2010-10-10 49 4869 9636
2010-10-11/2010-10-17 98 5079 10344
2010-10-18/2010-10-24 147 5361 10847
2010-10-25/2010-10-31 196 5379 10940
附錄:日期型別截圖
相關推薦
Pandas使用DataFrame進行資料分析比賽進階之路(二):日期資料處理:按日期篩選、顯示及統計資料
首先,表格的資料格式如下: 1、獲取某年某月資料 data_train = pd.read_csv('data/train.csv') # 將資料型別轉換為日期型別 data_train[
JavaScript的進階之路(二)函數簡介,變量、作用域和內存問題
ret 優化 person get 簡介 web瀏覽器 都是 add 是把 <h3>ECMAScript中函數不存在函數簽名的概念,沒有重載</h3><h3>無需指定返回值,可以在任何時候返回任何值。未指定返回值的函數,返回的是一個特殊
Android進階之路(二) -- NDK初探
繼續學習NDK開發,今天來實現一個簡單的計算器功能,NativeUtil類中有一個靜態的native方法,它接收三個引數,分別是兩個運算元和一個操作符,並且返回C的計算結果。NativeUtil類定義如下public class NativeUtil { static
我的安卓進階之路(二)
這周結束了“活動”,開始了UI的征程。 1、七大控制元件 踩的兩個小坑 第一個,ImageView即圖片控制元件,名稱必須以字母開頭。如1img不行,而img2可以,倒是和變數名的命名相類似。 第
React 進階之路(二)
在之前的文章中我們介紹了 React 開發的環境搭建及目錄介紹和整理,本篇文章將介紹 React 建立元件、JSX 語法、繫結資料和繫結物件。 之前我們已經將專案運行了起來,我們再來看一下目錄結構: 其中 App.js 檔案為我們的根元件,裡面的程式碼: 其中 import 為我們需要引入的檔案
koa2 從入門到進階之路 (二)
之前的文章我們已經能夠在本地啟動一個簡單的專案,本章我們來看一下 koa 路由,get 傳值,動態路由。 一、Koa 路由 路由(Routing)是由一個 URI(或者叫路
Python 從入門到進階之路(二)
之前的文章我們對 Python 語法有了一個簡單的認識,接下來我們對 Python 中的 if while for 做一下介紹。 上圖為 if 判斷語句的流程,無論任何語言,都會涉及到判斷問題,if 條件會進行 true 和 false 的判斷,如下: 1 num = 10 2 if num =
Python 爬蟲從入門到進階之路(二)
上一篇文章我們對爬蟲有了一個初步認識,本篇文章我們開始學習 Python 爬蟲例項。 在 Python 中有很多庫可以用來抓取網頁,其中內建了 urllib 模組,該模組就能實現我們基本的網頁爬取。 在 Python2.x 和 Python3.x 中 urllib 模組是不一樣的,但是用法上差不多,我們先
Java 從入門到進階之路(二)
之前的文章我們介紹了一下用 IDEA 編輯器建立一個 Java 專案並輸出 HelloWorld,本章我們來看一下 Java 中的變數和基本資料型別。 在這之前我們先來看一下 Java 中的關鍵字,這些關鍵字不能被用作變數名稱。 類別關鍵字說明 訪問控制 private 私有的
JavaScript的進階之路(三)引用類型之Object類型和Array類型
reverse 代碼 -1 替換 fine 設置 sha unshift sum 引用類型 Object類型 function a(num){ if(num>3){ a(--num); } console.log(num);
慕課 從零到一spark進階之路(一)
1.RDD RDD是spark特有的資料模型,談到RDD就會提到什麼彈性分散式資料集,什麼有向無環圖,本文暫時不去展開這些高深概念。 (0)隨便找個點理解以下 最重要的記住,RRD是不可變的,也就是說,已有的RDD不能被修改或者更新,但可以從已有的RDD轉化成一個新的RDD. 上面的
Java小白進階之路(一)
1、字串操作:replace方法(舊字串,新子串)。 Scanner scanner = new Scanner(System.in); System.out.println("請輸入"); // 接收使用者的輸入的字串 String s1 = scanner.next(); // 接受整型 i
C#進階之路(七)反射的應用
反射在C#中的應用還是很多的,但它對程式碼的效能有一定影響。 反射的效能: 使用反射來呼叫型別或者觸發方法,或者訪問一個欄位或者屬性時clr 需要做更多的工作:校驗引數,檢查許可權等等,所以速度是非常慢的。所以儘量不要使用反射進行程式設計,對於打算編寫一個動態構造型別(晚繫結)的應用程
Python基礎進階之路(四)之元組、字典和字符串
python基礎 tag 基礎 block 場景 分隔 應用場景 agg bsp 元組 元組的定義 Tuple(元組)與列表類似,不同之處在於元組的 元素不能修改 元組 表示多個元素組成的序列 元組 在 Python 開發中,有特定的應用場景 用
Python基礎進階之路(四)之元組、字典和字串
元組 元組的定義 Tuple(元組)與列表類似,不同之處在於元組的 元素不能修改 元組 表示多個元素組成的序列 元組 在 Python 開發中,有特定的應用場景 用於儲存 一串 資訊,資料 之間使用
Python基礎進階之路(五)之字串
字串 字串的定義 字串 就是 一串字元,是程式語言中表示文字的資料型別 在 Python 中可以使用 一對雙引號 " 或者 一對單引號 ' 定義一個字串 雖然可以使用 \" 或者 \' 做字串的轉義,但是在實際開發中: 如果字串內部需要使用 ",可以使用 ' 定義字串 如果字串內部需要使用
Hadoop進階之路(3)——Hadoop檔案系統
Hadoop有一個抽象的檔案系統概念,HDFS只是其中的一個實現。Java抽象類org.apache.hadoop.fs.FileSystem定義了Hadoop中的一個檔案系統介面,並且該抽象類有幾個具體實現。 Hadoop檔案系統 檔案系統 URI方案 Ja
Linux進階之路(一):部署
經過長期的開發工作,在專案中經常會需要將打包好的專案部署到Linux伺服器上,不過,在此之前需要掌握一些Linux常用命令比如ls、ll、ps -ef|grep java 、cp、tail 等等,詳細的可以百度查一下,還是很多的。接下來,就說一下關於專案的部署。 首先需要一個遠端訪問Linu
Android進階之路(一) -- AS 3.0NDK環境搭建及hello world
通過一段找實習的經歷,以及快應用、小程式、web app等移動開發模式的衝擊,深深為安卓原生開發的未來感到擔憂,希望接入人工智慧API和物聯網井噴能給安卓開發帶來新的生機吧。當然,作為小白我是不用擔心這麼多的,做自己喜歡的事就好了,於是拋開雜念,繼續學習安卓。NDK開發環境的
Android進階之路(三) -- JNI互動
今天繼續學習C與Java通過JNIEnv互動。昨天學習了C與Java互動方法,但感覺太輕鬆了,就像呼叫findViewById一樣簡單,可能是我遺漏了什麼東西,於是就想在今天繼續研究這一塊兒的內容,順便做一下總結。C呼叫Java的方法和訪問Java中的變數都是通過JNIEnv