我正在努力嘗試將包含多個日期時間列的資料框轉換為具有日期范圍的版本。
一個較小的例子看起來有點像這樣:
所以從:
key date_upgrade1 date_upgrade2
0 key1 2020-07-31 2020-08-31
1 key2 2020-05-31 NaT
到:
month key upgrade1 upgrade2
0 2020-06-01 key1 0 0
1 2020-07-01 key1 0 0
2 2020-08-01 key1 1 0
3 2020-09-01 key1 1 1
4 2020-06-01 key2 1 0
5 2020-07-01 key2 1 0
6 2020-08-01 key2 1 0
7 2020-09-01 key2 1 0
如果升級尚未完成,upgrade1 和 upgrade 2 為“0”,如果升級已經執行,則為“1”。
事實上,我現在很失落。我設法創建了空的 date_range 資料框。但我不確定如何為多個鍵復制它并將升級日期后的所有值更改為 1。
任何幫助表示贊賞。
uj5u.com熱心網友回復:
在此期間自己回答了這個問題:
df = [
df1.assign(month=t)
for t in pd.date_range(first_date, now, freq='MS')
]
df = pd.concat(df)
df.reset_index(drop=True, inplace=True)
df["upgrade1"] = df.month.gt(df.date_upgrade1).astype('int')
df["upgrade2"] = df.month.gt(df.date_upgrade2).astype('int')
df1 定義為上層 DataFrame。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344874.html
