Python Pandas - ฟังก์ชั่นหน้าต่าง
สำหรับการทำงานกับข้อมูลตัวเลข Pandas มีรูปแบบต่างๆเช่นการกลิ้งการขยายและการย้ายน้ำหนักแบบเลขชี้กำลังสำหรับสถิติหน้าต่าง ในจำนวนนี้ ได้แก่sum, mean, median, variance, covariance, correlation, เป็นต้น
ตอนนี้เราจะเรียนรู้ว่าแต่ละสิ่งเหล่านี้สามารถนำไปใช้กับวัตถุ DataFrame ได้อย่างไร
.rolling () ฟังก์ชัน
ฟังก์ชันนี้สามารถใช้กับชุดข้อมูลได้ ระบุไฟล์window=n อาร์กิวเมนต์และใช้ฟังก์ชันทางสถิติที่เหมาะสมด้านบน
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2000', periods=10),
columns = ['A', 'B', 'C', 'D'])
print df.rolling(window=3).mean()
มัน output มีดังนี้ -
A B C D
2000-01-01 NaN NaN NaN NaN
2000-01-02 NaN NaN NaN NaN
2000-01-03 0.434553 -0.667940 -1.051718 -0.826452
2000-01-04 0.628267 -0.047040 -0.287467 -0.161110
2000-01-05 0.398233 0.003517 0.099126 -0.405565
2000-01-06 0.641798 0.656184 -0.322728 0.428015
2000-01-07 0.188403 0.010913 -0.708645 0.160932
2000-01-08 0.188043 -0.253039 -0.818125 -0.108485
2000-01-09 0.682819 -0.606846 -0.178411 -0.404127
2000-01-10 0.688583 0.127786 0.513832 -1.067156
Note - เนื่องจากขนาดหน้าต่างคือ 3 สำหรับสององค์ประกอบแรกจึงมีค่าว่างและจากค่าที่สามค่าจะเป็นค่าเฉลี่ยของ n, n-1 และ n-2องค์ประกอบ ดังนั้นเรายังสามารถใช้ฟังก์ชั่นต่างๆดังที่กล่าวข้างต้น
.expanding () ฟังก์ชัน
ฟังก์ชันนี้สามารถใช้กับชุดข้อมูลได้ ระบุไฟล์min_periods=n อาร์กิวเมนต์และใช้ฟังก์ชันทางสถิติที่เหมาะสมด้านบน
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2000', periods=10),
columns = ['A', 'B', 'C', 'D'])
print df.expanding(min_periods=3).mean()
มัน output มีดังนี้ -
A B C D
2000-01-01 NaN NaN NaN NaN
2000-01-02 NaN NaN NaN NaN
2000-01-03 0.434553 -0.667940 -1.051718 -0.826452
2000-01-04 0.743328 -0.198015 -0.852462 -0.262547
2000-01-05 0.614776 -0.205649 -0.583641 -0.303254
2000-01-06 0.538175 -0.005878 -0.687223 -0.199219
2000-01-07 0.505503 -0.108475 -0.790826 -0.081056
2000-01-08 0.454751 -0.223420 -0.671572 -0.230215
2000-01-09 0.586390 -0.206201 -0.517619 -0.267521
2000-01-10 0.560427 -0.037597 -0.399429 -0.376886
.ewm () ฟังก์ชัน
ewmถูกนำไปใช้กับชุดข้อมูล ระบุ com, span,halflifeอาร์กิวเมนต์และใช้ฟังก์ชันทางสถิติที่เหมาะสมด้านบน จะกำหนดน้ำหนักแบบทวีคูณ
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2000', periods=10),
columns = ['A', 'B', 'C', 'D'])
print df.ewm(com=0.5).mean()
มัน output มีดังนี้ -
A B C D
2000-01-01 1.088512 -0.650942 -2.547450 -0.566858
2000-01-02 0.865131 -0.453626 -1.137961 0.058747
2000-01-03 -0.132245 -0.807671 -0.308308 -1.491002
2000-01-04 1.084036 0.555444 -0.272119 0.480111
2000-01-05 0.425682 0.025511 0.239162 -0.153290
2000-01-06 0.245094 0.671373 -0.725025 0.163310
2000-01-07 0.288030 -0.259337 -1.183515 0.473191
2000-01-08 0.162317 -0.771884 -0.285564 -0.692001
2000-01-09 1.147156 -0.302900 0.380851 -0.607976
2000-01-10 0.600216 0.885614 0.569808 -1.110113
ฟังก์ชันหน้าต่างส่วนใหญ่ใช้ในการค้นหาแนวโน้มภายในข้อมูลแบบกราฟิกโดยการทำให้เส้นโค้งเรียบ หากข้อมูลในชีวิตประจำวันมีการเปลี่ยนแปลงจำนวนมากและมีจุดข้อมูลจำนวนมากการเก็บตัวอย่างและการลงจุดเป็นวิธีการหนึ่งและใช้การคำนวณหน้าต่างและการลงจุดกราฟบนผลลัพธ์ก็เป็นอีกวิธีหนึ่ง ด้วยวิธีการเหล่านี้เราสามารถทำให้เส้นโค้งหรือแนวโน้มเรียบได้