【发布时间】:2018-03-09 13:46:06
【问题描述】:
我有这个包含日期的 pandas 数据框,我想在其上将列值(我称之为“月中”)增加 1每个月的 14 号,例如:
date day_of_month mid_month_id
2004-05-12 12 5
2004-05-13 13 5
2004-05-14 14 6
2004-05-15 15 6
直到……时间的尽头(让我们把它放在 2020-12-31)。
但我现在拥有的是:
date day_of_month mid_month_id
2004-05-12 12 xxx
2004-05-13 13 xxx
2004-05-14 14 xxx
2004-05-15 15 xxx
我进行了子集化和应用:
df_test = df.loc[:,['day_of_month', 'mid_month_id']]
# Let's start at mid_month_id 7
m = 7
for i, row in df_test.iterrows():
if df_test.loc[i, 'day_of_month'] < 14 and df_test.loc[i, 'mid_month_id'] == "xxx":
df_test.loc[i, 'mid_month_id'] = m;
if df_test.loc[i, 'day_of_month'] >= 14 and df_test.loc[i, 'mid_month_id'] == "xxx":
df_test.loc[i, 'mid_month_id'] = m + 1;
m = m + 1
df_test
它返回了从一天到下一天的增量。
然后,我尝试不使用 m = m + 1,所以值是 7 和 8 直到最后。
至少对我来说有点挑战。
感谢您的帮助
【问题讨论】:
标签: python pandas datetime dataframe