我有以下的数据帧df
:如何GROUPBY和适用于大熊猫的功能
period remaining_et_months property_id beds
0 0 0 329 1
1 1 0 329 1
2 2 1 329 1
3 3 2 329 1
4 3 2 329 1
5 4 3 329 1
6 4 3 329 1
7 4 3 329 1
8 5 4 329 1
9 5 4 329 1
10 5 4 329 1
11 5 4 329 1
,我需要组这个数据帧和应用功能,使我能够计算一列名为dist_period
:
g = df.groupby(['property_id', 'beds', 'period'])
g.apply(some_function)
我需要组由property_id
,beds
,和period
,因为数据帧大于一个在本例中大。
我没有一个明确的想法如何实现这一点,但我想要的东西列dist_period
是这样的:
period remaining_et_months dist_period
0 0 0 0
1 1 0 1
2 2 1 1
3 3 2 1
4 3 2 2
5 4 3 1
6 4 3 2
7 4 3 3
8 5 4 1
9 5 4 2
10 5 4 3
11 5 4 4
注意,当该组只有一个元素的dist_period
值period - remaining_et_months
,但是当该组有多个元素时(见周期为3,4或5时),则执行从1开始的计数。
您需要将问题简化为代表您拥有的数据并演示您想要执行的操作的等效代码。正如你的问题所在,我不知道你如何从第一张桌子到第二张桌子。 – piRSquared
@piRSquared,我清楚我想要得到什么,但我不知道如何得到它。看你什么时候分组,每个组都会有一些元素。以榜样为例,将会有6个组。有3个组的元素个数为1,因此这些行的'dist_period'的值是'period - remaining_et_months'。其他三个组有不止一个元素,所以对于'period'等于3,我希望每个元素都从1开始计算。它有意义吗? – lmiguelvargasf
remaining_et_months总是周期1吗? – user3212593