我有兩個資料集。一個包含 63 年的環境資料,每個日期都有值(~23K 日期),第二個包含收集環境樣本的日期串列(~1K)。我需要將第一組的值與第二組的結束日期相加。腳本問題是開始日期將作為 MMs-DD 串列傳遞,并且年份將始終在結束日期的前一年。例如,如果結束日期為 1973-02-16 和 1988-04-09,開始日期為 11 月 15 日,則每個結束日期的適當開始日期年份為 1972-11-15 和 1987-11-15 .
因此,我如何遍歷結束日期串列,對于每個結束日期年份減去一年,將該年份添加到開始日期,以便我可以將開始日期和結束日期之間的值相加(然后我將存盤結束日期旁邊的列中的值)?對我來說,Python 的癥結在于如何以 YYYY-MM-DD 格式獲取開始日期,以便我可以將兩個日期之間的值相加。以下是為說明目的而創建的資料集。

uj5u.com熱心網友回復:
構建樣本資料集
import pandas as pd
import numpy as np
import datetime
dat_r = pd.date_range('1972-11-12', '1988-04-10')
dataset_1 = pd.DataFrame({'DATE': dat_r, 'VALUE':np.random.rand(dat_r.__len__())})
dataset_2 = pd.DataFrame({'END DATE': [datetime.date(1973,2,16), datetime.date(1974,1,12), datetime.date(1975,5,23), datetime.date(1981,3,3)]})
list_of_start_dates = pd.DataFrame({'DATE (Start)': ['09-01', '10-15', '11-30', '12-05']})
您可以按如下方式構建所需的資料集:
dff = pd.DataFrame(index=dataset_2['END DATE'], columns=list_of_start_dates['DATE (Start)'])
dff = dff.melt(ignore_index=False)
年份可以添加到日期,像這樣
dff['AUX'] = pd.to_datetime(dff.index.map(lambda x: str(x.year-1)) "-" dff['DATE (Start)'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446324.html
上一篇:遍歷檔案但忽略Bash中的前兩行
下一篇:在R中存盤回圈導致資料幀
