gpt4 book ai didi

python - 在 Pandas 中使用日期时间

转载 作者:行者123 更新时间:2023-11-28 22:28:16 24 4
gpt4 key购买 nike

我有一个巨大的数据框。下面是一个小例子:

Date        Timing  Day_number
17.03.2016 8 1
17.03.2016 8 2
17.03.2016 8 3
17.03.2016 8 4
17.03.2016 8 5
17.03.2016 8 6
17.03.2016 8 7
17.03.2016 8 8
30.08.2016 3 1
30.08.2016 3 2
30.08.2016 3 3
31.05.2016 3 1
31.05.2016 3 2
31.05.2016 3 3
...

我需要添加一个新列。我查看“时间”列中的值。例如,如果值为 8,那么我会查看日期并在这种情况下在每一行中添加一天。结果是八行,日期从 17.03.2016 到 24.03.2016。 “时间”列中的值可以不同。日期也不一样。对于这个例子,我应该有这样的东西:

Date        Timing     Day_number      Distribution_of_days
17.03.2016 8 1 17.03.2016
17.03.2016 8 2 18.03.2016
17.03.2016 8 3 19.03.2016
17.03.2016 8 4 20.03.2016
17.03.2016 8 5 21.03.2016
17.03.2016 8 6 22.03.2016
17.03.2016 8 7 23.03.2016
17.03.2016 8 8 24.03.2016
30.08.2016 3 1 30.08.2016
30.08.2016 3 2 31.08.2016
30.08.2016 3 3 01.09.2016
31.05.2016 3 1 31.05.2016
31.05.2016 3 2 01.06.2016
31.05.2016 3 3 02.06.2016
...

同时我需要跳过周末!

Pandas 将“日期”列的值识别为非空对象。这是否意味着他不将它们视为约会对象?

有人可以帮助我吗?我自己无法处理此任务。

最佳答案

IIUC:

from pandas.tseries.offsets import BDay
df['Date'] = pd.to_datetime(df.Date)
df.assign(Distribution_of_days=df['Date'] + df['Day_number'].apply(BDay))

输出:

         Date  Timing  Day_number Distribution_of_days
0 2016-03-17 8 1 2016-03-18
1 2016-03-17 8 2 2016-03-21
2 2016-03-17 8 3 2016-03-22
3 2016-03-17 8 4 2016-03-23
4 2016-03-17 8 5 2016-03-24
5 2016-03-17 8 6 2016-03-25
6 2016-03-17 8 7 2016-03-28
7 2016-03-17 8 8 2016-03-29
8 2016-08-30 3 1 2016-08-31
9 2016-08-30 3 2 2016-09-01
10 2016-08-30 3 3 2016-09-02
11 2016-05-31 3 1 2016-06-01
12 2016-05-31 3 2 2016-06-02
13 2016-05-31 3 3 2016-06-03

编辑(他在当天开始工作):

df.assign(Distribution_of_days=df['Date'] + df['Day_number'].add(-1).apply(BDay)) 

输出:

         Date  Timing  Day_number Distribution_of_days
0 2016-03-17 8 1 2016-03-17
1 2016-03-17 8 2 2016-03-18
2 2016-03-17 8 3 2016-03-21
3 2016-03-17 8 4 2016-03-22
4 2016-03-17 8 5 2016-03-23
5 2016-03-17 8 6 2016-03-24
6 2016-03-17 8 7 2016-03-25
7 2016-03-17 8 8 2016-03-28
8 2016-08-30 3 1 2016-08-30
9 2016-08-30 3 2 2016-08-31
10 2016-08-30 3 3 2016-09-01
11 2016-05-31 3 1 2016-05-31
12 2016-05-31 3 2 2016-06-01
13 2016-05-31 3 3 2016-06-02

关于python - 在 Pandas 中使用日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43636975/

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