Tôi có chuỗi thời gian với nhiệt độ và bức xạ trong gấu trúc dataframe
. Độ phân giải thời gian là 1 phút theo các bước thông thường.Làm cách nào để lấy mẫu lại một khung dữ liệu với các chức năng khác nhau được áp dụng cho mỗi cột?
import datetime
import pandas as pd
import numpy as np
date_times = pd.date_range(datetime.datetime(2012, 4, 5, 8, 0),
datetime.datetime(2012, 4, 5, 12, 0),
freq='1min')
tamb = np.random.sample(date_times.size) * 10.0
radiation = np.random.sample(date_times.size) * 10.0
frame = pd.DataFrame(data={'tamb': tamb, 'radiation': radiation},
index=date_times)
frame
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 241 entries, 2012-04-05 08:00:00 to 2012-04-05 12:00:00
Freq: T
Data columns:
radiation 241 non-null values
tamb 241 non-null values
dtypes: float64(2)
Làm thế nào tôi có thể xuống mẫu dataframe
này để độ phân giải của một giờ, tính toán giờ nghĩa cho nhiệt độ và giờ tổng đối với bức xạ?
Điều này có thể được mở rộng đến một danh sách các hàm cho mỗi cột: 'frame.resample ('1H', how = {'radiation': [np.sum, np.min], 'tamb': np.mean})'.DataFrame kết quả có một MultiIndex trên các cột của nó, với tên cột ban đầu là cấp 0 và tên hàm là cấp 1. –
Để thêm vào nhận xét trước của tôi: thay vì danh sách hàm cho mỗi cột, bạn cũng có thể sử dụng từ điển, trong đó khóa là tên cột mới và giá trị là hàm để sử dụng: 'frame.resample ('1H', how = {'radiation': {'sum_rad': np.sum, 'min_rad': np.min} , 'tamb': np.mean}) ' –
nói nếu bạn muốn thêm cột MỚI vào kết quả, chẳng hạn như count() của mỗi hàng trong khoảng thời gian mẫu lại. – codingknob