我有一個資料集,每當“更新”列中的日期值更新時,其他列也將更新。邏輯是:
Date1 is 3 months from Date2
Date2 is 1 month from Date3
and Update is 1 month from Date3
唯一發生變化的資料是日期,它們本質上是根據用戶輸入而變化的。
資料
Date1 Date2 Date3 Update
1/1/2021 4/1/2021 5/1/2021 6/1/2021
5 2 1 1
想要的
輸入提示將詢問用戶他們希望輸入的日期值。用戶輸入日期“8/1/2021”,這將更新剩余的列日期值。
Date1 Date2 Date3 Update
3/1/2021 6/1/2021 7/1/2021 8/1/2021
5 2 1 1
正在做
我相信我可以結合使用函式和用戶提示來解決這個問題。
#take input
datevalue = input("Enter date value: ")
print(datevalue)
#use input variable in function or script to create date update
s = df['Update'].str.replace(r'(\S ) (\S )', r'\2\1')
df['Update'] = (pd.PeriodIndex(s, freq='D') 3).strftime('D%q %Y')
我正在尋找一些關于如何最好地解決這個問題的起點建議或良好的基礎/檔案。我還在研究。任何建議表示贊賞。
uj5u.com熱心網友回復:
您的資料格式有點亂,但這應該適合您:
datevalue = pd.to_datetime(input("Enter date value: "))
df = df.T
df[1] = df[1].astype(int)
df.loc['Update', 1] = 0
df[0] = df[1].apply(lambda x: datevalue - pd.DateOffset(months=x))
df = df.T
輸出:
>>> df
Date1 Date2 Date3 Update
0 2021-03-01 00:00:00 2021-06-01 00:00:00 2021-07-01 00:00:00 2021-08-01 00:00:00
1 5 2 1 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383765.html
