【发布时间】:2022-01-12 02:31:27
【问题描述】:
我有一个数据框 df,我希望用户在其中输入一个整数,该整数将针对给定条件移动特定日期。
数据
start m1 m2 de re type
0 2018-01-01 2022-01-01 2022-04-01 2022-05-01 2022-06-01 aa
1 2018-01-01 2022-01-01 2022-04-01 2022-05-01 2022-06-01 aa
2 2018-01-01 2022-01-01 2022-04-01 2022-05-01 2022-06-01 bb
希望
**User input**: 9
start m1 m2 de re type
0 2018-01-01 2022-10-01 2023-01-01 2023-02-01 2023-03-01 aa
1 2018-01-01 2022-10-01 2023-01-01 2023-02-01 2023-03-01 aa
2 2018-01-01 2022-10-01 2023-01-01 2022-05-01 2022-06-01 bb
#user 输入整数:9。我们现在在 'm2' 列 4+9 中将 9 添加到月份,我们现在是 2023 年 1 月 1 日。
(2022 年 4 月 1 日在“m2”列中。我们在此日期上加上 9 个月,即为 2023 年 1 月 1 日)
正在做
month_value = df["m2"] += pd.DateOffset(months=int(input()))
if df[type] == 'aa': # condition applied
d = {
'm1': pd.DateOffset(months=3), #we offset m1, 3 months from m2
'de': pd.DateOffset(months=1),
're': pd.DateOffset(months=2),
}
s = pd.Series(d).rsub(month_value)
df.assign(**{**s, 'm2': month_value})
else:
e = {'m1': pd.DateOffset(months=3),}
s1 = pd.Series(e).rsub(month_value)
df.assign(**{**s1, 'm2': month_value})
我正在研究。任何建议表示赞赏。
【问题讨论】:
-
试试 numpy 在哪里?
-
@BENY 将尝试合并 numpy - 你的意思是有条件的?