根据值创建两个Pandas DataFrame

时间:2019-07-30 15:58:09

标签: python pandas

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

我要处理的数据是每月的几天。以下示例显示了跨越两个月的日期。您可以看到第一天是该月的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()

1 个答案:

答案 0 :(得分:3)

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

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