Hướng dẫn resample in python - lấy lại mẫu trong python

Python là một ngôn ngữ tuyệt vời để phân tích dữ liệu, chủ yếu là do hệ sinh thái tuyệt vời của các gói Python tập trung vào dữ liệu. Pandas là một trong những gói đó và giúp nhập và phân tích dữ liệu dễ dàng hơn nhiều.Pandas is one of those packages and makes importing and analyzing data much easier.

Chức năng Pandas dataframe.resample() chủ yếu được sử dụng cho dữ liệu chuỗi thời gian. Chuỗi thời gian là một loạt các điểm dữ liệu được lập chỉ mục (hoặc được liệt kê hoặc biểu đồ) theo thứ tự thời gian. Thông thường nhất, một chuỗi thời gian là một chuỗi được thực hiện tại các điểm cách đều nhau liên tiếp. Đây là một phương pháp tiện lợi để chuyển đổi tần số và lấy mẫu lại chuỗi thời gian. Đối tượng phải có một chỉ mục giống như DateTime (DateTimeIndex, SepetIndex hoặc TimEdeltainDex) hoặc chuyển các giá trị giống như DateTime cho từ khóa Bật hoặc cấp.
A time series is a series of data points indexed (or listed or graphed) in time order. Most commonly, a time series is a sequence taken at successive equally spaced points in time. It is a Convenience method for frequency conversion and resampling of time series. Object must have a datetime-like index (DatetimeIndex, PeriodIndex, or TimedeltaIndex), or pass datetime-like values to the on or level keyword.

Cú pháp: dataFrame.resample (quy tắc, how = none, axis = 0, fill_method = none, đóng = không on = none, level = none) DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention=’start’, kind=None, loffset=None, limit=None, base=0, on=None, level=None)

Các tham số: Quy tắc: Chuỗi bù hoặc đối tượng biểu thị chuyển đổi đích: int, tùy chọn, mặc định 0closed: {'right', 'left'} Nhãn: {'right', 'left'} Sự khởi đầu hoặc kết thúc của Ruleloffset: Điều chỉnh các nhãn thời gian được ghép lại: Đối với các tần số chia đều 1 ngày, nguồn gốc của các khoảng thời gian tổng hợp. Ví dụ, đối với tần số 5 phút, cơ sở có thể nằm trong khoảng từ 0 đến 4. mặc định đến 0.on: Đối với một khung dữ liệu, cột để sử dụng thay vì chỉ mục để lấy mẫu lại. Cột phải là DateTime giống như. Cấp độ phải giống như DateTime.
rule : the offset string or object representing target conversion
axis : int, optional, default 0
closed : {‘right’, ‘left’}
label : {‘right’, ‘left’}
convention : For PeriodIndex only, controls whether to use the start or end of rule
loffset : Adjust the resampled time labels
base : For frequencies that evenly subdivide 1 day, the “origin” of the aggregated intervals. For example, for ‘5min’ frequency, base could range from 0 through 4. Defaults to 0.
on : For a DataFrame, column to use instead of index for resampling. Column must be datetime-like.
level : For a MultiIndex, level (name or number) to use for resampling. Level must be datetime-like.

Lấy mẫu lại tạo ra một phân phối lấy mẫu duy nhất trên cơ sở dữ liệu thực tế. Chúng tôi có thể áp dụng nhiều tần số khác nhau để lấy mẫu dữ liệu chuỗi thời gian của chúng tôi. Đây là một kỹ thuật rất quan trọng trong lĩnh vực phân tích. Tần số chuỗi thời gian thường được sử dụng nhất là
Most commonly used time series frequency are –
W : weekly frequency
M : month end frequency
SM : semi-month end frequency (15th and end of month)
Q : quarter end frequency

Có nhiều loại tần số chuỗi thời gian khác có sẵn. Hãy cùng xem cách áp dụng tần số chuỗi thời gian này trên dữ liệu và lấy mẫu lại.

Đối với liên kết đến tệp CSV được sử dụng trong mã, bấm vào đây

Đây là dữ liệu giá cổ phiếu của Apple trong thời gian 1 năm từ (13-11-17) đến (13-11-18)

Ví dụ #1: Việc lấy mẫu lại dữ liệu về tần số hàng tháng Resampling the data on monthly frequency

import pandas as pd

df =

Trial    Measurement    Data
    0              0       8 
                   1       8
    1              0      12
                   1      12
    2              0      12
                   1      12
8
Trial    Measurement    Data
    0              0       8 
                   1       8
    1              0      12
                   1      12
    2              0      12
                   1      12
9
for sub_df in np.arange(len(df['Trial'].max()))
0

Hướng dẫn resample in python - lấy lại mẫu trong python

for sub_df in np.arange(len(df['Trial'].max()))
1=
for sub_df in np.arange(len(df['Trial'].max()))
3
for sub_df in np.arange(len(df['Trial'].max()))
4
for sub_df in np.arange(len(df['Trial'].max()))
5

for sub_df in np.arange(len(df['Trial'].max()))
6

Đầu ra: & nbsp; Ví dụ #2: lấy mẫu lại dữ liệu trên tần số hàng tuần

Hướng dẫn resample in python - lấy lại mẫu trong python

 
Example #2: Resampling the data on weekly frequency

import pandas as pd

df =

Trial    Measurement    Data
    0              0       8 
                   1       8
    1              0      12
                   1      12
    2              0      12
                   1      12
8
Trial    Measurement    Data
    0              0       8 
                   1       8
    1              0      12
                   1      12
    2              0      12
                   1      12
9
for sub_df in np.arange(len(df['Trial'].max()))
0

import8

for sub_df in np.arange(len(df['Trial'].max()))
1=
for sub_df in np.arange(len(df['Trial'].max()))
3
for sub_df in np.arange(len(df['Trial'].max()))
4
for sub_df in np.arange(len(df['Trial'].max()))
5

Hướng dẫn resample in python - lấy lại mẫu trong python

 
Example #3: Resampling the data on Quarterly frequency

import pandas as pd

df =

Trial    Measurement    Data
    0              0       8 
                   1       8
    1              0      12
                   1      12
    2              0      12
                   1      12
8
Trial    Measurement    Data
    0              0       8 
                   1       8
    1              0      12
                   1      12
    2              0      12
                   1      12
9
for sub_df in np.arange(len(df['Trial'].max()))
0

=0

for sub_df in np.arange(len(df['Trial'].max()))
1=
for sub_df in np.arange(len(df['Trial'].max()))
3
for sub_df in np.arange(len(df['Trial'].max()))
4
for sub_df in np.arange(len(df['Trial'].max()))
5

Hướng dẫn resample in python - lấy lại mẫu trong python


Tôi có một khung dữ liệu trông như thế này:

Trial    Measurement    Data
    0              0      12 
                   1       4
                   2      12
    1              0      12
                   1      12
    2              0      12
                   1      12
                   2     NaN
                   3      12

Tôi muốn lấy mẫu lại dữ liệu của mình để mọi thử nghiệm chỉ có hai phép đo nên tôi muốn biến nó thành một cái gì đó như thế này:

Trial    Measurement    Data
    0              0       8 
                   1       8
    1              0      12
                   1      12
    2              0      12
                   1      12

Nhiệm vụ khá hiếm gặp này bắt nguồn từ thực tế là dữ liệu của tôi có một công việc cố ý về phần trình bày kích thích.

Tôi biết Pandas có chức năng lấy mẫu lại, nhưng tôi không biết làm thế nào để áp dụng nó vào chỉ mục cấp hai của mình trong khi giữ dữ liệu trong các danh mục riêng biệt dựa trên chỉ mục cấp độ thứ nhất :(

Ngoài ra, tôi muốn lặp đi lặp lại, qua các chỉ số cấp độ đầu tiên của tôi, nhưng rõ ràng

for sub_df in np.arange(len(df['Trial'].max()))

Sẽ không hoạt động vì =1 là một gấu trúc chỉ mục không thể tìm thấy nó.