社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用于分组并返回在数据中找到的所有事件的Python代码

Newbielp • 6 年前 • 1537 次点击  

假设我的数据是:

my_list=[[0,'A',10,12,14],
         [0,'A',10,13,15],
         [0,'A',8,12,13],
         [0,'A',9,13,17],
         [0,'A',8,11,15],
         [0,'B',9,5,7],
         [0,'B',11,5,9],
         [0,'B',8,7,8],
         [1,'A',11,14,9],
         [0,'B',8,10,14],
         [1,'B',11,6,6],
         [1,'A',10,5,9]
         [1,'B',9,6,6]]

my_frame=pd.DataFrame(my_list, columns=['id','quality','grade','characteristic 1','characteristic 2'])

我的目标是使用分数作为感兴趣的最大值和最小值,按“id”和“quality”对数据进行分组。所以我编码:

my_group=np.array(my_frame.groupby(['id','quality'])['grade']
         .agg(["max grade", max],["min grade", min])
         .reset_index())

到目前为止还不错,但我还没有弄清楚如何处理我真正需要的信息:

我想分组,得到所有的案件,等级最高和最低发生,与所有的信息行。换言之,当前对我有效的代码给出了以下信息:

print(my_group)

输出:

[[0,'A',10,8],
 [0,'B',11,8],
 [1,'A',11,10],
 [1,'B',11,9]]

不过,我感兴趣的是带来这样的产出:

[[0,'A',10,12,14],
 [0,'A',10,13,15],
 [0,'A',8,12,13],
 [0,'A',8,11,15],
 [0,'B',11,5,9],
 [0,'B',8,7,8],
 [0,'B',8,10,14],
 [1,'A',11,14,9],
 [1,'A',10,5,9],
 [1,'B',11,6,6],
 [1,'B',9,6,6]]

为了尽可能清楚地说明这一点,groupby将为我提供每个“id”和每个“quality”的最大和最小“grade”,但我实际上需要知道我获得此最大和最小“grade”的其余信息(“characteristic 1”和“characteristic 2”),而不管最大“grade”和最小“grade”出现了多少次。

你能引导我通过这个吗?我希望我的问题是清楚的。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49575
文章 [ 1 ]  |  最新文章 6 年前