Computer >> Máy Tính >  >> Lập trình >> Python

Viết chương trình bằng Python để lấy lại mẫu dữ liệu chuỗi thời gian nhất định và tìm tần suất cuối tháng tối đa

Giả sử, bạn có chuỗi thời gian và kết quả cho tần suất cuối tháng tối đa,

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

Giải pháp

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước dưới đây -

  • Xác định khung dữ liệu với một cột,

d = {'Id': [1,2,3,4,5,6,7,8,9,10]}
df = pd.DataFrame(d)
  • Tạo hàm date_range bên trong start =’01 / 01/2020 ’, period =10 và gán freq =‘ W ’. Nó sẽ tạo ra mười ngày từ ngày bắt đầu nhất định đến ngày bắt đầu hàng tuần tiếp theo và lưu trữ nó dưới dạng df [‘time_series’].

df['time_series'] = pd.date_range('01/01/2020', periods=10, freq='W')
  • Áp dụng phương pháp lấy lại mẫu để tìm tần suất cuối tháng tối đa,

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

Ví dụ

Hãy xem cách triển khai bên dưới để hiểu rõ hơn -

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())

Đầu ra

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