【发布时间】:2020-04-30 12:18:42
【问题描述】:
我有一个包含两个类(A 或 B)和标记的数据框,我想显示每个类的标记范围。
数据框:
Class Mark Department
A 74.0 1
A 73.0 2
B 72.0 1
A 75.0 1
B 64.0 2
我想要达到的目标:
Class Mark Range
A 73.0-75.0
B 64.0-72.0
我正在考虑使用 min max(为范围创建一个新字段)。但作为开始,我尝试将其分组:
df['count'] = 1
result = df.pivot_table('count', index='Mark', columns='Class', aggfunc='sum').fillna(0)
这很复杂,我很快就放弃了。
然后我只在我的数据框中保留了两列(Mark 和 Class)并使用了以下内容:
df[['Mark','Class']].values
现在我只需要创建标记范围列。我在想是否有一种更简单的方法,无需简单地旋转数据并检查范围(按 ColumnB 分组的 columnA 的最小值)。
【问题讨论】:
-
df.groupby('Class').Mark.agg(['min','max'])? -
唯一缺少的是范围 concat,您知道如何很好地做到这一点吗?
标签: python-3.x pandas group-by