【发布时间】:2022-01-17 09:09:36
【问题描述】:
我有一个数据集,每当更新“更新”列中的日期值时,另一个 列也将更新。逻辑是:
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
希望
输入提示将询问用户他们希望输入的日期值。 用户输入日期“2021 年 8 月 1 日”,这会更新剩余列的日期值。
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')
我正在寻找关于如何最好地解决此问题的一些起点建议或良好的基础/文档。我还在研究。任何建议表示赞赏。
【问题讨论】:
-
所以基本上,用
Update和用户输入(all dates = all dates + (user input - Update))之间的差异更新所有日期? -
@user17242583 根据在更新列中输入的日期值更新 Date1 Date2 和 Date3。 Date1 和 Date2 相隔 3 个月。 Date2 和 Date3 相隔 1 个月。 Date3 和 Update 相隔 1 个月。
-
啊,我明白了,所以用户输入被放入更新列中,然后其他列根据此更新......好吧,应该很容易。
-
是的,值会根据逻辑和用户输入的内容更新@user17242583
标签: python pandas function numpy input