Python 使用GroupBy后删除每个组的最后一行
我正在寻找在使用GroupBy后删除每个组的最后一行的解决方案 DataFramePython 使用GroupBy后删除每个组的最后一行,python,pandas,numpy,pandas-groupby,Python,Pandas,Numpy,Pandas Groupby,我正在寻找在使用GroupBy后删除每个组的最后一行的解决方案 DataFrameFarmers包含在特定时间间隔(分钟)内发送信息的几个农民的工作进度。此dF的索引是FarmerName Criteria = pd.DataFrame() Criteria['HourList'] = farmers.groupby(['FarmerName','date','hour'])['hour'].unique() Criteria 使用标准我想显示农民在某一天的活动时间 FarmerName d
Farmers
包含在特定时间间隔(分钟)内发送信息的几个农民的工作进度。此dF的索引是FarmerName
Criteria = pd.DataFrame()
Criteria['HourList'] = farmers.groupby(['FarmerName','date','hour'])['hour'].unique()
Criteria
使用标准
我想显示农民在某一天的活动时间
FarmerName date hour 'HourList'
George 2019-04-01 6 [6]
7 [7]
8 [8]
9 [9]
10 [10]
Albert 2019-04-01 12 [12]
13 [13]
14 [14]
15 [15]
16 [16]
最终结果应如下所示:
FarmerName date hour 'HourList'
George 2019-04-01 6 [6]
7 [7]
8 [8]
9 [9]
Albert 2019-04-01 12 [12]
13 [13]
14 [14]
15 [15]
试图用标准[:-1]
对标准进行切片是一种错误的方法(它只是对FarmerAlbert的第16小时进行切片)。我尝试过.apply()
,但没有一次成功
这个问题有没有简单的解决办法?你就快到了ddf=df.groupby([…]).apply(lambda x:x[:-1])
为什么要使用unique?它是一个组级别,因此保证与该级别相同,就像一个包含单个元素的列表一样。u=Criteria.groupby(级别=[0,1]).cumcount(升序=False);标准[u>0]
您能更清楚地解释一下您真正想要实现的目标吗?这似乎是一个你已经开始走上错误的道路来解决你的根本问题。如果您的问题是删除每个农场主和日期中最后一小时的,
,那么分组是不必要的。@Valentino:是的,这是我最初尝试的。结果与标准[:-1]
的结果相同。很接近ddf=df.groupby([…]).apply(lambda x:x[:-1])
为什么要使用unique?它是一个组级别,因此保证与该级别相同,就像一个包含单个元素的列表一样。u=Criteria.groupby(级别=[0,1]).cumcount(升序=False);标准[u>0]
您能更清楚地解释一下您真正想要实现的目标吗?这似乎是一个你已经开始走上错误的道路来解决你的根本问题。如果您的问题是删除每个农场主和日期中最后一小时的,
,那么分组是不必要的。@Valentino:是的,这是我最初尝试的。结果与标准[:-1]
相同。