我正在尝试创建两个熊猫数据帧。
我要处理的数据是一个月的几天。以下示例显示了两个月超过两个月的天数。您可以看到第一天是本月的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()
使用diff
和cumsum
创建键,groupby
将子组保存到dict
d={x : y for x , y in df.groupby(df.Days.diff().lt(0).cumsum())}