SC.Pandas 03 | như thế nào sử dụng Pandas phân tích thời gian danh sách số liệu?

Introduction

Trước hai kỳ chúng ta đối Pandas số liệu kết cấu cùng thường dùng tính toán phương pháp tiến hành rồi giới thiệu, ở địa cầu khoa học lĩnh vực thời gian danh sách phân tích là rất quan trọng một loại số liệu xử lý phương thức.

Thông qua lý giải số liệu thời gian biến hóa đặc thù, chúng ta có thể càng thâm nhập mà lý giải nghiên cứu đối tượng diễn biến quy luật cùng vật lý cơ chế.

Bởi vậy, bổn kỳ chúng ta liền từ Pandas trung thời gian danh sách số liệu xử lý góc độ, tới tìm tòi nghiên cứu địa cầu khoa học trong lĩnh vực thời gian danh sách số liệu một ít thường dùng phương pháp.

Thời gian chọc

Là chỉ một cái tỏ vẻ nào đó riêng thời gian điểm tự phù xuyến hoặc mã hóa tin tức. Nó thông thường từ một tổ con số tạo thành, đại biểu từ nào đó tham khảo thời gian ( tỷ như cách lâm uy trị thời gian 1970 năm 1 nguyệt 1 ngày 00:00:00 UTC) bắt đầu trải qua thời gian lượng, đơn vị vì giây hoặc hào giây.

Python trung, có thể sử dụngtimeMô khối cùngdatetimeMô khối tới xử lý thời gian chọc. Bởi vì Pandas mô khối trung nội trí này đó hàm số, bởi vậy chúng ta không cần lại đơn độc sử dụng kể trên mô khối xử lý.

Thời gian danh sách sáng tạo

Pandas trung thời gian danh sách sáng tạo chủ yếu có hai loại phương thức:

  • Thông qua Pandas trung nội trídate_rangeHàm số sáng tạo thời gian danh sách, nên hàm số có thể chỉ định lúc đầu ngày, kết thúc ngày, thời gian bước trường chờ tham số, cũng phản hồi một cái DatetimeIndex đối tượng.

  • Thông qua Pandas trungto_datetimeHàm số đem mặt khác cách thức ngày thời gian tự phù xuyến thay đổi vìDatetimeIndexĐối tượng ( khi chúng ta yêu cầu đem đọc vào tay Pandas trung bảng biểu ngày thay đổi làm thời gian cách thức khi, đem thập phần hữu dụng ).

Phía dưới thông qua ví dụ tới thuyết minh này hai loại phương pháp sử dụng.

Sử dụng date_range sáng tạo thời gian danh sách

date_rangeHàm số có thể thông qua tổ hợp bất đồng tham số lấy nhiều loại hình thức sáng tạo liên tục thời gian danh sách, chúng ta đầu tiên thông qua chỉ định khởi ngăn thời gian cùng thời gian bước trườngfreqSinh thành thời gian danh sách.

Pandas thường thấy thời gian bước trường bao gồm:

  • S:Giây

  • T:Phút

  • H:Giờ

  • D:Thiên

  • B:Thời gian làm việc

  • W:Chu

  • M:Nguyệt

  • Q:Quý

  • Y:Năm

Chúng ta có thể ở thời gian bước trường phía trước hơn nữa con số đến từ định nghĩa thời gian bước trường, tỷ như2HTỏ vẻ 2 giờ.

import pandas as pd

# đã biết lúc đầu ngày cùng kết thúc ngày, sinh thành ngày danh sách, cam chịu thời gian bước trường vì 1 thiên
date_range = pd.date_range(start='2021-01-01', end='2021-01-04')
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2021-05-07', freq='M') # thiết trí bước trường vì nguyệt
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2021-08-07', freq='3M') # thiết trí bước trường vì 3 tháng
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2021-05-07', freq='5W') # thiết trí bước trường vì chu
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2021-01-06', freq='B') # thiết trí bước trường vì thời gian làm việc
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2021-11-07', freq='Q') # thiết trí bước trường vì quý
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2023-05-07', freq='YS') # thiết trí bước trường vì nửa năm
print(date_range)

DatetimeIndex(['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'], dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2021-01-31', '2021-02-28', '2021-03-31', '2021-04-30'], dtype='datetime64[ns]', freq='M')
DatetimeIndex(['2021-01-31', '2021-04-30', '2021-07-31'], dtype='datetime64[ns]', freq='3M')
DatetimeIndex(['2021-01-03', '2021-02-07', '2021-03-14', '2021-04-18'], dtype='datetime64[ns]', freq='5W-SUN')
DatetimeIndex(['2021-01-01', '2021-01-04', '2021-01-05', '2021-01-06'], dtype='datetime64[ns]', freq='B')
DatetimeIndex(['2021-03-31', '2021-06-30', '2021-09-30'], dtype='datetime64[ns]', freq='Q-DEC')
DatetimeIndex(['2021-01-01', '2022-01-01', '2023-01-01'], dtype='datetime64[ns]', freq='AS-JAN')

Chúng ta có thể chú ý tới, Pandas ấn chu, tháng, quý bước trường sinh thành ngày vì cuối cùng một ngày. Hơn nữa, quý tính toán phương thức cam chịu dựa theo tự nhiên nhịp 3-4-5 nguyệt vì đệ nhất quý tới tính toán.

Chúng ta có thể tiến hành một ít tự định nghĩa thao tác:

date_range = pd.date_range(start='2021-01-01', end='2021-04-07', freq='MS') # thiết trí sinh thành ngày vì cùng tháng ngày đầu tiên, MS(month start)
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2021-05-07', freq='QS') # thiết trí sinh thành ngày vì quý ngày đầu tiên, thả quý khởi tính nguyệt biến thành 1 nguyệt
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2024-05-07', freq='YS') # thiết trí sinh thành ngày vì mỗi năm ngày đầu tiên
print(date_range)

date_range = pd.date_range(start='2021-01-01', end='2021-01-15', freq='W-MON') # thiết trí sinh thành ngày vì mỗi tuần thứ hai
print(date_range)

date_range = pd.date_range(start='2023-01-01', end='2024-01-15', freq='QS-FEB') # thiết trí sinh thành ngày vì quý ngày đầu tiên, thả lấy 2 nguyệt vì quý lúc đầu
print(date_range)
DatetimeIndex(['2021-01-01', '2021-02-01', '2021-03-01', '2021-04-01'], dtype='datetime64[ns]', freq='MS')
DatetimeIndex(['2021-01-01', '2021-04-01'], dtype='datetime64[ns]', freq='QS-JAN')
DatetimeIndex(['2021-01-01', '2022-01-01', '2023-01-01', '2024-01-01'], dtype='datetime64[ns]', freq='AS-JAN')
DatetimeIndex(['2021-01-04', '2021-01-11'], dtype='datetime64[ns]', freq='W-MON')
DatetimeIndex(['2023-02-01', '2023-05-01', '2023-08-01', '2023-11-01'], dtype='datetime64[ns]', freq='QS-FEB')

Có chút dưới tình huống, chúng ta chỉ biết mới bắt đầu ngày hoặc hết hạn ngày, chúng ta có thể thông qua sở cần thời gian bước trường cùng chu kỳ số tới tính toán thời gian danh sách.

date_range = pd.date_range(start='2021-01-01', freq='D', periods=7) # đã biết lúc đầu ngày, tần suất, chu kỳ, sinh thành ngày danh sách
print(date_range)

date_range = pd.date_range(end='2021-01-07', freq='W', periods=7) # đã biết kết thúc ngày, tần suất, chu kỳ, sinh thành ngày danh sách
print(date_range)
DatetimeIndex(['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04',
'2021-01-05', '2021-01-06', '2021-01-07'],
dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2020-11-22', '2020-11-29', '2020-12-06', '2020-12-13',
'2020-12-20', '2020-12-27', '2021-01-03'],
dtype='datetime64[ns]', freq='W-SUN')

Ngoài ra,date_rangeHàm số còn bao hàm mấy cái khả năng dùng đến tham số:

  • tz:Chỉ định múi giờ, cam chịu vìNone,Tỏ vẻ sử dụng hệ thống cam chịu múi giờ

  • normalize:Đem ngày về một hóa đến00:00,Cam chịu vìFalse

  • name:Chỉ định sinh thành thời gian danh sách tên

  • inclusive:Cũ bản trung vìclosed,Sinh thành ngày phạm vi hay không bao hàm bắt đầu cùng kết thúc ngày, cam chịu vìleft( tả bế hữu khai ). Mặt khác nhưng tuyển giá trị córight( tả khai hữu bế ),both( tả bế hữu bế ),neither( tả khai hữu khai )

date_range = pd.date_range('2021-01-01', '2021-01-05', freq='D', tz='Asia/Tokyo') # đông chín khu Đông Kinh thời gian
print(date_range)

print(date_range.tz_convert('UTC')) # thay đổi vì trung múi giờ giờ chuẩn gian
DatetimeIndex(['2021-01-01 00:00:00+09:00', '2021-01-02 00:00:00+09:00',
'2021-01-03 00:00:00+09:00', '2021-01-04 00:00:00+09:00',
'2021-01-05 00:00:00+09:00'],
dtype='datetime64[ns, Asia/Tokyo]', freq='D')
DatetimeIndex(['2020-12-31 15:00:00+00:00', '2021-01-01 15:00:00+00:00',
'2021-01-02 15:00:00+00:00', '2021-01-03 15:00:00+00:00',
'2021-01-04 15:00:00+00:00'],
dtype='datetime64[ns, UTC]', freq='D')
date_range = pd.date_range('2021-01-01 12:25:56', '2021-12-31', freq='M')
print(date_range[0])

date_range = pd.date_range('2021-01-01 12:25:56', '2021-12-31', freq='M', normalize=True) # về một hóa ngày đến 00:00:00
print(date_range[0])
2021-01-31 12:25:56
2021-01-31 00:00:00
date_range = pd.date_range('2021-01-01', '2021-12-31', freq='Q', name='Seasonal')
print(date_range)

date_range = pd.date_range('2024-05-01', '2024-05-04', inclusive='left')
print(date_range)

date_range = pd.date_range('2024-05-01', '2024-05-04', inclusive='right')
print(date_range)

date_range = pd.date_range('2024-05-01', '2024-05-04', inclusive='both')
print(date_range)

date_range = pd.date_range('2024-05-01', '2024-05-04', inclusive='neither')
print(date_range)
DatetimeIndex(['2021-03-31', '2021-06-30', '2021-09-30', '2021-12-31'], dtype='datetime64[ns]', name='Seasonal', freq='Q-DEC')
DatetimeIndex(['2024-05-01', '2024-05-02', '2024-05-03'], dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2024-05-02', '2024-05-03', '2024-05-04'], dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2024-05-01', '2024-05-02', '2024-05-03', '2024-05-04'], dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2024-05-02', '2024-05-03'], dtype='datetime64[ns]', freq='D')

Từ mặt khác cách thức sáng tạo thời gian danh sách

Nơi này mặt khác cách thức giống nhau chính là chỉ tự phù xuyến hình thức ngày thời gian, như '2021-01-01'. Khi chúng ta từ phần ngoài văn kiện dẫn vào đại lượng mang thời gian số liệu khi, có thể thông quato_datetimeHàm số nhanh và tiện mà đem này thay đổi làm thời gian danh sách.

Chúng ta từ phần ngoài đọc lấy một cái.csvVăn kiện, cũng đem này ngày thời gian liệt thay đổi làm thời gian danh sách.

pth = r'F:\Proj_Geoscience.Philosophy\Material\tmp_SSP2.csv'

df = pd.read_csv(pth, index_col=0)
print(df)
ACCESS-CM2 EC-Earth3 EC-Earth3-Veg MPI-ESM1-2-HR GFDL-ESM4 \
1990-12-31 -9.838771 -9.637003 -9.321887 -10.383628 -9.549001
1991-12-31 -10.165740 -9.453364 -9.650858 -10.076542 -9.783594
1992-12-31 -10.944804 -10.569817 -9.624666 -10.221733 -9.442735
1993-12-31 -11.011893 -10.919116 -9.689930 -10.822980 -9.617322
1994-12-31 -9.935500 -9.687431 -10.403852 -10.077468 -9.583637
..................
2096-12-31 -6.101502 -6.675644 -5.595156 -6.935057 -8.173742
2097-12-31 -6.801526 -4.585644 -6.461058 -7.107297 -7.350170
2098-12-31 -7.923017 -6.654356 -6.137528 -6.842564 -7.736062
2099-12-31 -6.628777 -7.413971 -4.578230 -7.274006 -7.175193
2100-12-31 -6.997662 -4.661766 -5.654026 -7.408147 -7.621691
[111 rows x 7 columns]

Nơi này đối một cái nhiệt độ không khí số liệu tiến hành rồi đọc lấy, chúng ta sử dụng Pandas trungread_csvHàm số. Đệ nhất hành cam chịu trở thành DataFrame liệt danh, bởi vì chúng ta chỉ định tham sốindex_col=0,Bởi vậy đệ nhất liệt bị thiết trí vì hành danh.

Phía dưới chúng ta đem DataFrame hướng dẫn tra cứu từ tự phù xuyến thay đổi vì ngày cách thức:

print(df.index)

df.index = pd.to_datetime(df.index)
print(df.index)
Index(['1990-12-31', '1991-12-31', '1992-12-31', '1993-12-31', '1994-12-31',
'1995-12-31', '1996-12-31', '1997-12-31', '1998-12-31', '1999-12-31',
...
'2091-12-31', '2092-12-31', '2093-12-31', '2094-12-31', '2095-12-31',
'2096-12-31', '2097-12-31', '2098-12-31', '2099-12-31', '2100-12-31'],
dtype='object', length=111)
DatetimeIndex(['1990-12-31', '1991-12-31', '1992-12-31', '1993-12-31',
'1994-12-31', '1995-12-31', '1996-12-31', '1997-12-31',
'1998-12-31', '1999-12-31',
...
'2091-12-31', '2092-12-31', '2093-12-31', '2094-12-31',
'2095-12-31', '2096-12-31', '2097-12-31', '2098-12-31',
'2099-12-31', '2100-12-31'],
dtype='datetime64[ns]', length=111, freq=None)

Chúng ta cũng có thể trực tiếp đối tự phù xuyến, danh sách chờ tiến hành thay đổi, mà không nhất định đều là Pandas đối tượng.

print(pd.to_datetime('2021-01'))
print(pd.to_datetime(['2021-01-01', '2021-01-02']))
2021-01-01 00:00:00
DatetimeIndex(['2021-01-01', '2021-01-02'], dtype='datetime64[ns]', freq=None)

to_datetimeHàm số trung,formatTham số có thể chỉ định ngày cách thức, như%Y-%m-%dTỏ vẻ năm - nguyệt - ngày. Đối với phi thường quy ngày cách thức, chúng ta có thể tự định nghĩa ngày cách thức tới phân tích cùng thay đổi.

Trong đó, năm, nguyệt, ngày, khi, phân, giây phân biệt dùng%Y,%m,%d,%H,%M,%STỏ vẻ.

print(pd.to_datetime('202101', format='%Y%m')) # trực tiếp phân tích đem báo sai, bởi vậy yêu cầu chỉ định ngày cách thức
print(pd.to_datetime(['20211', '20212', '202112'], format='%Y%m'))
2021-01-01 00:00:00
DatetimeIndex(['2021-01-01', '2021-02-01', '2021-12-01'], dtype='datetime64[ns]', freq=None)

Chếch đi thời gian danh sách

Một ít dưới tình huống, tồn tại nhiều nguyên thời gian danh sách không xứng đôi vấn đề, khả năng yêu cầu đối thời gian danh sách tiến hành chếch đi. Pandas trung cung cấp nhiều loại phương pháp đối thời gian danh sách tiến hành chếch đi.

date_range = pd.date_range('2021-01-01', '2021-01-05', freq='D')
print(date_range)
print(date_range.shift(1)) # căn cứ trước mặt bước trường đơn vị tiến hành chếch đi
print(date_range.shift(-3))
print(date_range.shift(2, freq='M')) # căn cứ chỉ định bước trường đơn vị tiến hành chếch đi
print(date_range + pd.offsets.Week(3))

# sinh thành thời gian chếch đi lượng
dt = pd.to_timedelta(3, unit='D')
print(dt)
print(date_range + dt)

dt = pd.to_timedelta(['1 D', '2 H', '3 minutes', '4 seconds', '5 w'])
print(date_range + dt)

dt = pd.to_timedelta('5 days 7 hours 30 minutes 10 seconds')
print(date_range + dt)
DatetimeIndex(['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04',
'2021-01-05'],
dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05',
'2021-01-06'],
dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2020-12-29', '2020-12-30', '2020-12-31', '2021-01-01',
'2021-01-02'],
dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2021-02-28', '2021-02-28', '2021-02-28', '2021-02-28',
'2021-02-28'],
dtype='datetime64[ns]', freq=None)
DatetimeIndex(['2021-01-22', '2021-01-23', '2021-01-24', '2021-01-25',
'2021-01-26'],
dtype='datetime64[ns]', freq=None)
3 days 00:00:00
DatetimeIndex(['2021-01-04', '2021-01-05', '2021-01-06', '2021-01-07',
'2021-01-08'],
dtype='datetime64[ns]', freq='D')
DatetimeIndex(['2021-01-02 00:00:00', '2021-01-02 02:00:00',
'2021-01-03 00:03:00', '2021-01-04 00:00:04',
'2021-02-09 00:00:00'],
dtype='datetime64[ns]', freq=None)
DatetimeIndex(['2021-01-06 07:30:10', '2021-01-07 07:30:10',
'2021-01-08 07:30:10', '2021-01-09 07:30:10',
'2021-01-10 07:30:10'],
dtype='datetime64[ns]', freq='D')

Thời gian danh sách số liệu xử lý

Bởi vì thời gian chu kỳ tính, tháng chiều dài không nhất trí chờ tồn tại, thời gian danh sách số liệu tương so đơn giản đại số giải toán càng vì rườm rà. Phía dưới chúng ta thông qua một tổ ngụy khí tượng số liệu tới nêu ví dụ thuyết minh.

import numpy as np

# sinh thành một tổ ngày nhiệt độ không khí số liệu
df_tmp = pd.DataFrame(index=pd.date_range('2024-01-01', '2024-12-31', freq='D'))
df_tmp['Moscow'] = np.random.rand(len(df_tmp)) * 10 - 15
df_tmp['Istanbul'] = np.random.rand(len(df_tmp)) * 10 + 5
df_tmp['Delhi'] = np.random.rand(len(df_tmp)) * 10 + 25
df_tmp['Tokyo'] = np.random.rand(len(df_tmp)) * 10 + 15
df_tmp['Oslo'] = np.random.rand(len(df_tmp)) * 10 - 5

print(df_tmp)
Moscow Istanbul Delhi Tokyo Oslo
2024-01-01 -12.507333 8.843648 33.246008 22.083794 1.464828
2024-01-02 -5.420229 10.210387 26.832628 18.923657 -0.535928
2024-01-03 -5.777253 11.924500 32.288078 16.753620 -1.134632
2024-01-04 -10.513435 7.863196 29.965339 20.013110 -1.965073
2024-01-05 -14.257012 9.221470 25.657996 17.241110 -0.337181
..................
2024-12-27 -12.507982 13.790553 30.266854 18.228648 3.433193
2024-12-28 -6.739498 10.727600 25.824327 21.259728 2.114948
2024-12-29 -9.713740 6.009821 28.296607 15.202731 -1.782476
2024-12-30 -12.356168 13.890982 27.810067 23.585278 2.910837
2024-12-31 -13.592953 9.560644 25.159271 22.388183 -3.792435

[366 rows x 5 columns]
# thường quy đại số thống kê
print(df_tmp.mean())
print(df_tmp.min())
print(df_tmp.max())
Moscow -10.028244
Istanbul 9.980530
Delhi 29.889565
Tokyo 19.897225
Oslo -0.263960
dtype: float64
Moscow -14.968037
Istanbul 5.008738
Delhi 25.021508
Tokyo 15.016760
Oslo -4.997246
dtype: float64
Moscow -5.049498
Istanbul 14.995171
Delhi 34.974616
Tokyo 24.968358
Oslo 4.908233
dtype: float64

Trường kỳ khí hậu thái là địa cầu khoa học quan trọng nội dung, bởi vậy chúng ta có thể sử dụngresamplePhương pháp đem ngày chừng mực số liệu thu thập mẫu vì hàng tháng, niên độ, quý, chu độ chờ.

print(df_tmp.resample('M').mean()) # nguyệt bình quân nhiệt độ không khí
print(df_tmp.resample('QS-DEC').mean()) # mùa bình quân nhiệt độ không khí
Moscow Istanbul Delhi Tokyo Oslo
2024-01-31 -10.254586 9.863383 29.811591 19.542478 0.118495
2024-02-29 -10.574170 8.663596 29.921715 20.434315 -0.765250
2024-03-31 -10.193746 10.903090 29.499974 20.089061 -0.521395
2024-04-30 -9.694386 10.436401 30.207367 19.352587 -0.458590
2024-05-31 -10.342069 9.759788 29.882693 19.872505 0.738848
2024-06-30 -10.516414 9.650099 30.606493 19.379372 -0.368868
2024-07-31 -9.736534 9.504273 29.598204 19.380998 0.145924
2024-08-31 -10.828593 9.994522 29.959532 20.387590 -0.642251
2024-09-30 -9.257497 10.375339 30.400341 19.200840 0.207057
2024-10-31 -9.458752 10.574113 29.696168 20.774836 -0.787231
2024-11-30 -9.482097 10.315962 30.240406 20.126591 -0.410509
2024-12-31 -9.997802 9.668432 28.913538 20.210843 -0.455287
Moscow Istanbul Delhi Tokyo Oslo
2023-12-01 -10.409052 9.283486 29.864818 19.973533 -0.308648
2024-03-01 -10.080890 10.365666 29.859606 19.775936 -0.076268
2024-06-01 -10.358819 9.717018 30.048746 19.719645 -0.287524
2024-09-01 -9.400100 10.423478 30.107732 20.042229 -0.335250
2024-12-01 -9.997802 9.668432 28.913538 20.210843 -0.455287
Moscow Istanbul Delhi Tokyo Oslo
2024-01-01 -12.507333 8.843648 33.246008 22.083794 1.464828
2024-01-02 -5.420229 10.210387 26.832628 18.923657 -0.535928
2024-01-03 -5.777253 11.924500 32.288078 16.753620 -1.134632
2024-01-04 -10.513435 7.863196 29.965339 20.013110 -1.965073
2024-01-05 -14.257012 9.221470 25.657996 17.241110 -0.337181
..................
2024-12-27 -12.507982 13.790553 30.266854 18.228648 3.433193
2024-12-28 -6.739498 10.727600 25.824327 21.259728 2.114948
2024-12-29 -9.713740 6.009821 28.296607 15.202731 -1.782476
2024-12-30 -12.356168 13.890982 27.810067 23.585278 2.910837
2024-12-31 -13.592953 9.560644 25.159271 22.388183 -3.792435

[366 rows x 5 columns]

Nếu nên yếu tố vì mưa, tổng mưa lượng tương đối bình quân mưa khả năng càng có ý nghĩa, lúc này thu thập mẫu hàm số nhưng đemmeanĐổi mới vìsumTính toán tổng mưa lượng.

df_prc = df_tmp.copy() / 10
df_prc[df_prc < 0] = 0

print(df_prc)
print(df_prc.resample('Y').sum()) # năm mưa lượng
Moscow Istanbul Delhi Tokyo Oslo
2024-01-01 0.0 0.884365 3.324601 2.208379 0.146483
2024-01-02 0.0 1.021039 2.683263 1.892366 0.000000
2024-01-03 0.0 1.192450 3.228808 1.675362 0.000000
2024-01-04 0.0 0.786320 2.996534 2.001311 0.000000
2024-01-05 0.0 0.922147 2.565800 1.724111 0.000000
..................
2024-12-27 0.0 1.379055 3.026685 1.822865 0.343319
2024-12-28 0.0 1.072760 2.582433 2.125973 0.211495
2024-12-29 0.0 0.600982 2.829661 1.520273 0.000000
2024-12-30 0.0 1.389098 2.781007 2.358528 0.291084
2024-12-31 0.0 0.956064 2.515927 2.238818 0.000000

[366 rows x 5 columns]
Moscow Istanbul Delhi Tokyo Oslo
2024-12-31 0.0 365.287396 1093.958072 728.238447 41.132944

Ở chúng ta thường thấy ERA5 số liệu trung, nó cung cấp nguyệt mưa số liệu thông thường vì nguyệt nội ngày đều mưa. Nhằm vào mỗi tháng chiều dài không nhất trí hoà bình năm nhuận vấn đề, chúng ta có thể sử dụng Pandas thời gian danh sách đơn giản giải quyết.

df_prc_month_day = pd.DataFrame(index=pd.date_range('2024-01-01', periods=12, freq='M'))
df_prc_month_day['Delhi'] = np.random.rand(df_prc_month_day.shape[0]) * 15
df_prc_month_day['Mumbai'] = np.random.rand(df_prc_month_day.shape[0]) * 15
df_prc_month_day['Bangalore'] = np.random.rand(df_prc_month_day.shape[0]) * 15
print(df_prc_month_day)
Delhi Mumbai Bangalore
2024-01-31 3.940283 14.243030 14.550210
2024-02-29 10.600057 3.372597 11.475781
2024-03-31 10.650589 0.588919 9.247578
2024-04-30 0.923979 11.217988 8.438911
2024-05-31 1.447532 10.217217 13.743340
2024-06-30 12.765974 8.176907 3.823629
2024-07-31 6.710510 13.173852 2.471967
2024-08-31 11.528575 0.201862 3.447648
2024-09-30 9.430506 14.604422 12.244354
2024-10-31 7.503884 14.636888 10.372287
2024-11-30 9.426874 12.573375 3.150358
2024-12-31 7.260503 8.289384 1.363746
print(df_prc_month_day.mul(df_prc_month_day.index.days_in_month, axis=0))
Delhi Mumbai Bangalore
2024-01-31 122.148777 441.533943 451.056512
2024-02-29 307.401667 97.805311 332.797655
2024-03-31 330.168271 18.256477 286.674931
2024-04-30 27.719360 336.539649 253.167335
2024-05-31 44.873482 316.733731 426.043535
2024-06-30 382.979229 245.307224 114.708863
2024-07-31 208.025813 408.389426 76.630984
2024-08-31 357.385838 6.257732 106.877081
2024-09-30 282.915194 438.132673 367.330612
2024-10-31 232.620416 453.743526 321.540895
2024-11-30 282.806225 377.201245 94.510754
2024-12-31 225.075581 256.970890 42.276127

Nhằm vào khí tượng điều kiện không ổn định, trơn nhẵn đi táo là chúng ta thường dùng đến phương pháp, hoặc là chúng ta yêu cầu tính toán ba ngày nội mưa chờ chỉ tiêu, đều yêu cầu sử dụng thời gian danh sách số liệu xử lý thực hiện. Phía dưới chúng ta sử dụng Pandas trung nội trí kinh điển phương pháp —— hoạt động cửa sổ pháprollingTới thực hiện sóng lọc.

Nên hàm số thường dùng tham số bao gồm:

  • window:Hoạt động cửa sổ lớn nhỏ, giống nhau yêu cầu hai đoan đối xứng, bởi vậy nhiều thiết trí vì số lẻ

  • min_periods:Cửa sổ nội nhỏ nhất quan trắc giá trị cái số, nếu cửa sổ nội trị số cái số nhỏ hơn nên giá trị đem phú không giá trị

  • center:Hay không đem cửa sổ trung tâm điểm đối tề đến nguyên thủy thời gian danh sách trung gian, cam chịu vìFalse( cư hữu ).

  • axis:Chỉ định hoạt động trục, cam chịu vì0

print(df_tmp.rolling(window=7).mean()) # 7 thiên hoạt động bình quân nhiệt độ không khí
print(df_tmp.rolling(window=7, center=True).mean()) # cửa sổ trung tâm ở giữa
print(df_tmp.rolling(window=7, min_periods=1, center=True).mean()) # nhỏ nhất cửa sổ thiết vì 1
Moscow Istanbul Delhi Tokyo Oslo
2024-01-01 NaN NaN NaN NaN NaN
2024-01-02 NaN NaN NaN NaN NaN
2024-01-03 NaN NaN NaN NaN NaN
2024-01-04 NaN NaN NaN NaN NaN
2024-01-05 NaN NaN NaN NaN NaN
..................
2024-12-27 -7.933149 9.308903 28.475941 21.106085 0.941338
2024-12-28 -7.550998 9.987686 27.761081 20.676448 1.004559
2024-12-29 -7.847822 9.231643 27.501335 19.853021 1.114749
2024-12-30 -8.812310 10.297097 27.865765 20.486932 1.071464
2024-12-31 -9.804272 10.878143 27.248562 21.308512 0.326890

[366 rows x 5 columns]
Moscow Istanbul Delhi Tokyo Oslo
2024-01-01 NaN NaN NaN NaN NaN
2024-01-02 NaN NaN NaN NaN NaN
2024-01-03 NaN NaN NaN NaN NaN
2024-01-04 -10.173355 10.262110 29.808843 19.473300 -0.561775
2024-01-05 -9.968426 10.657593 29.773274 19.517357 -1.058107
..................
2024-12-27 -8.812310 10.297097 27.865765 20.486932 1.071464
2024-12-28 -9.804272 10.878143 27.248562 21.308512 0.326890
2024-12-29 NaN NaN NaN NaN NaN
2024-12-30 NaN NaN NaN NaN NaN
2024-12-31 NaN NaN NaN NaN NaN

[366 rows x 5 columns]
Moscow Istanbul Delhi Tokyo Oslo
2024-01-01 -8.554563 9.710433 30.583013 19.443545 -0.542701
2024-01-02 -9.695053 9.612640 29.598010 19.003058 -0.501597
2024-01-03 -10.340545 9.784317 29.339153 18.711367 -0.478302
2024-01-04 -10.173355 10.262110 29.808843 19.473300 -0.561775
2024-01-05 -9.968426 10.657593 29.773274 19.517357 -1.058107
..................
2024-12-27 -8.812310 10.297097 27.865765 20.486932 1.071464
2024-12-28 -9.804272 10.878143 27.248562 21.308512 0.326890
2024-12-29 -10.303311 11.334780 27.572287 20.931878 0.193201
2024-12-30 -10.982069 10.795920 27.471426 20.132914 0.576813
2024-12-31 -10.600590 10.047262 26.772568 20.608980 -0.137281

[366 rows x 5 columns]
df_tmp.plot(figsize=(7, 3.5), title='Original', colormap='autumn')
df_tmp.rolling(window=7, min_periods=1, center=True).mean().plot(figsize=(7, 3.5), title='7D Rolling', colormap='autumn')

0ebbd70e102d58dd7eb4e62d7a03c222.png

63f57cd164850cdae454f2bb12fbc2ba.png

# căn cứ ngày mưa lượng tính toán 72 giờ tổng mưa lượng ( ba ngày cầu hòa )
print(df_prc.rolling(window=3, center=True, min_periods=1).sum())

df_prc.plot(figsize=(7, 3), title='Original', colormap='tab10')
df_prc.rolling(window=3, center=True, min_periods=1).sum().plot(figsize=(7, 3), title='72 Hours Total Precipitation', colormap='tab10')
Moscow Istanbul Delhi Tokyo Oslo
2024-01-01 0.0 1.905404 6.007864 4.100745 0.146483
2024-01-02 0.0 3.097854 9.236671 5.776107 0.146483
2024-01-03 0.0 2.999808 8.908604 5.569039 0.000000
2024-01-04 0.0 2.900917 8.791141 5.400784 0.000000
2024-01-05 0.0 2.772737 8.366820 5.450713 0.000000
..................
2024-12-27 0.0 3.854723 8.416778 6.441508 0.554814
2024-12-28 0.0 3.052797 8.438779 5.469111 0.554814
2024-12-29 0.0 3.062840 8.193100 6.004774 0.502579
2024-12-30 0.0 2.946145 8.126595 6.117619 0.291084
2024-12-31 0.0 2.345163 5.296934 4.597346 0.291084

[366 rows x 5 columns]

a1da88bc7969d9d6a09c1eb80e9f8583.png

885febf70f0bf08fec3a6e7d19dffcae.png

Lời cuối sách

Trở lên chính là về Pandas xử lý thời gian danh sách số liệu một ít giới thiệu, càng nhiều phong phú, thâm nhập cách dùng cũng bất quá là tại đây cơ sở thượng đua trang cùng mở rộng. Chúng ta chỉ cần nắm giữ hảo này đó cơ sở lắp ráp, liền có thể thông qua bất đồng lắp ráp phương thức đạt tới chúng ta cuối cùng mục đích.

Nhưng không hề nghi ngờ, này đó nội dung vẫn là quá mức dễ hiểu, càng nhiều nội dung còn cần đại gia tự hành thăm dò. Mặt khác, cùngdate_rangeCùngto_datetimeCùng loại, còn tồn tạiperiod_rangeCùngto_periodHàm số. Chúng nó cách dùng cơ hồ nhất trí, nhưng người sau càng cường điệu thời gian đoạn khái niệm.

Nhưng nói chung, nếu chúng ta cho rằng liên tục hai cái thời gian chọc chi gian bước trường là cố định, như vậy thời gian đoạn khái niệm cũng không hề tất yếu. Bởi vậy, bổn văn liền không hề lắm lời ( thật dài một kỳ, so với ta trong tưởng tượng dài quá mau gấp đôi ).

Lần này chúng ta còn đề cập tới rồi cùng phần ngoài số liệu lẫn nhau cùng khả thị hóa, này bộ phận nội dung cũng sẽ mau chóng đề thượng nghị trình.

Như vậy, chúng ta hạ kỳ tái kiến!

Manuscript: RitasCake

Proof: Philero; RitasCake

Thu hoạch càng nhiều tin tức, hoan nghênh đặt mua WeChat công chúng hào: Westerlies

Nhảy chuyển cùng kình xã khu, đám mây vận hành bổn văn trường hợp.https:// heywhale /mw/project/66221ce2e584e69fbfef87ba/content

654d6bcab0311868ff6617a4cef94dfd.jpeg

  • 25
    Điểm tán
  • Dẫm
  • 21
    Cất chứa
    Cảm thấy cũng không tệ lắm? Một kiện cất chứa
  • 1
    Bình luận
Bình luận1
Tăng thêm bao lì xì

Thỉnh điền bao lì xì chúc phúc ngữ hoặc tiêu đề

Cái

Bao lì xì cái số nhỏ nhất vì 10 cái

Nguyên

Bao lì xì kim ngạch thấp nhất 5 nguyên

Trước mặt ngạch trống3.43Nguyên Đi trước nạp phí >
Cần chi trả:10.00Nguyên
Thành tựu một trăm triệu kỹ thuật người!
Lĩnh sau ngươi sẽ tự động trở thành bác chủ cùng bao lì xì chủ fans Quy tắc
hope_wisdom
Phát ra bao lì xì
Thật phóNguyên
Sử dụng ngạch trống chi trả
Điểm đánh một lần nữa thu hoạch
Quét mã chi trả
Tiền bao ngạch trống 0

Để khấu thuyết minh:

1. Ngạch trống là tiền bao nạp phí giả thuyết tiền, dựa theo 1:1 tỉ lệ tiến hành chi trả kim ngạch để khấu.
2. Ngạch trống vô pháp trực tiếp mua sắm download, có thể mua sắm VIP, trả phí chuyên mục cập chương trình học.

Ngạch trống nạp phí