gpt4 book ai didi

python - 根据日期增加 Pandas Dataframe 列

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:56 25 4
gpt4 key购买 nike

我有这个 pandas 日期数据框,我想在这些日期上增加一个列值,我称之为“月中”,每个月的 14 日增加 1,例如:

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。

至少对我来说有点挑战。

谢谢你的帮助

最佳答案

您可以使用 cumsum 在您的数据集中尝试类似的操作。

m=7
df_test['mid_month_id'] = m+(df.day_of_month == 14).cumsum()

print(m + (df.day_of_month == 14).cumsum())

输出:

0    7
1 7
2 8
3 8
4 8
5 8
6 9
7 9
Name: day_of_month, dtype: int32

关于python - 根据日期增加 Pandas Dataframe 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49195188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com