基于值创建两个大熊猫数据范围



我正在尝试创建两个熊猫数据帧。

我要处理的数据是一个月的几天。以下示例显示了两个月超过两个月的天数。您可以看到第一天是本月的19日。然后,这一列数据一直持续到下个月的19日。

我需要一种将数据分解为两个数据帧的方法 - 第一个DF从19-30开始,第二个DF从01-19开始。

这是我目前的DF。

Days
0     19
1     20
2     21
3     22
4     23
5     24
6     25
7     26
8     27
9     28
10    29
11    30
12     1
13     2
14     3
15     4
16     5
17     6
18     7
19     8
20     9
21    10
22    11
23    12
24    13
25    14
26    15
27    16
28    17
29    18
30    19

我需要数据帧看起来像:

df - Number 1
0     19
1     20
2     21
3     22
4     23
5     24
6     25
7     26
8     27
9     28
10    29
11    30

df - Number 2
0     1
1     2
2     3
3     4
4     5
5     6
6     7
7     8
8     9
9     10
10    11
11    12
12    13
13    14
14    15
15    16
16    17
17    18
18    19

我已经尝试使用.shift方法检查上一个值大于下一个值,但这只能在月份结束时找到。

timesheet_df['match'] = timesheet_df.Days > timesheet_df.Days.shift()

使用diffcumsum创建键,groupby将子组保存到dict

d={x : y for x , y in df.groupby(df.Days.diff().lt(0).cumsum())}

最新更新