我搜索了这一点,但还是不能让我的头轮组,所以......熊猫分配值从组的一个成员所有其他成员
的数据(dataFrame
)是这个样子( *
表示期望的输出):
id parentid page_number is_critical_page page_number_of_critical* page_numbers_not_critical* 0 1 1 1 True 1 2,3,4,5 1 2 1 2 False 1 2,3,4,5 2 3 1 3 False 1 2,3,4,5 3 4 1 4 False 1 2,3,4,5 4 5 1 5 False 1 2,3,4,5 5 6 2 1 False 2 1,3 6 7 2 2 True 2 1,3 7 8 2 3 False 2 1,3 8 9 3 1 False -1 1 9 10 4 1 True 1 -1
欲:
组行乘
parentid
:dgroups=dataFrame.groupby('parentid')
应用任意操作,以基团:
def func(grp): grp['has_critical_page'] = grp['is_critical_page'].sum()>0 # simple operation ### Apply operation here to generate: ### ?? grp['page_number_of_critical*'] = ... ?? # is a scalar ### ?? grp['page_numbers_not_critical'] = ... ?? # is a list return grp dgroups.apply(func) print dgroups.describe()
的-1
的是N /正如 - 可能是一个NaN
,None
,-99
或任何其它特殊值。
我不知道是否使用apply
,transform
,filter
等,或是否申请(..)func
到dataFrame
或这些组的行。
试图避免当然循环....谢谢!
PS积分为如何在组内处理的is_critical_page
多命中......
PPS不知道如何格式化数据表... – jtlz2
感谢谁固定的表... – jtlz2