Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรมใน Python เพื่อสุ่มตัวอย่างข้อมูลอนุกรมเวลาที่กำหนดและค้นหาความถี่สูงสุดสิ้นเดือน


สมมติว่า คุณมีอนุกรมเวลาและผลลัพธ์สำหรับความถี่สูงสุดสิ้นเดือน

DataFrame is:
 Id time_series
0 1 2020-01-05
1 2 2020-01-12
2 3 2020-01-19
3 4 2020-01-26
4 5 2020-02-02
5 6 2020-02-09
6 7 2020-02-16
7 8 2020-02-23
8 9 2020-03-01
9 10 2020-03-08
Maximum month end frequency:
              Id time_series
time_series
2020-01-31    4 2020-01-26
2020-02-29    8 2020-02-23
2020-03-31    10 2020-03-08

วิธีแก้ปัญหา

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -

  • กำหนด dataframe ด้วยหนึ่งคอลัมน์

d = {'Id': [1,2,3,4,5,6,7,8,9,10]}
df = pd.DataFrame(d)
  • สร้างฟังก์ชัน date_range ภายใน start='01/01/2020', จุด =10 และกำหนด freq ='W' โดยจะสร้างวันที่สิบวันจากวันที่เริ่มต้นที่กำหนดไปจนถึงวันที่เริ่มต้นสัปดาห์ถัดไปและจัดเก็บเป็น df['time_series']

df['time_series'] = pd.date_range('01/01/2020', periods=10, freq='W')
  • ใช้วิธีสุ่มตัวอย่างเพื่อค้นหาความถี่สูงสุดสิ้นเดือน

df.resample('M', on='time_series').max())

ตัวอย่าง

มาดูการใช้งานด้านล่างเพื่อความเข้าใจที่ดีขึ้น -

import pandas as pd
d = {'Id': [1,2,3,4,5,6,7,8,9,10]}
df = pd.DataFrame(d)
df['time_series'] = pd.date_range('01/01/2020',
                                    periods=10,
                                    freq='W')
print("DataFrame is:\n",df)
print("Maximum month end frequency: ")
print(df.resample('M', on='time_series').max())

ผลลัพธ์

DataFrame is:
 Id time_series
0 1 2020-01-05
1 2 2020-01-12
2 3 2020-01-19
3 4 2020-01-26
4 5 2020-02-02
5 6 2020-02-09
6 7 2020-02-16
7 8 2020-02-23
8 9 2020-03-01
9 10 2020-03-08
Maximum month end frequency:
              Id time_series
time_series
2020-01-31    4 2020-01-26
2020-02-29    8 2020-02-23
2020-03-31    10 2020-03-08