【发布时间】:2021-05-18 00:26:52
【问题描述】:
我有三列,一列是类型,另一列是子类型,第三列是品种。我试图按类型分组并找出有多少个独特的子类型属于某个类型。
例如类型是水果,子类型是香蕉、苹果、橙子。
| Type | subtype | Variety |
|---|---|---|
| fruit | banana | A |
| fruit | banana | B |
| fruit | banana | C |
| fruit | apple | A |
| fruit | apple | B |
| fruit | apple | C |
期望的结果:
| type | subtype |
|---|---|
| fruit | banana |
| fruit | apple |
| fruit | orange |
总数行数为 700,由 30 种不同类型组成。
【问题讨论】:
-
df.groupby(['fruit']).agg({'subtype':'nunique'})您只需选择带有df = df[['type','subtype']]的类型和子类型列。.agg和nunique参数计算每个fruit分组的agg'ing 列中唯一数据点的数量。 -
抱歉,我可能理解错了,您是想弄清楚每种类型/子类型组合的独特品种的数量吗?
-
是的,工作得很好,因为我想要名称,所以我使用了 'unique' 而不是 'nunique'。这将帮助我决定为建模部分保留哪一列。谢谢!
-
“橙色”从何而来,因为它没有出现在您的初始表格中?
-
橙色出现在我写的时候,有 700 多行有 30 种不同的类型,所以其中一个子类型也是橙色的。这是一个示例案例,因为它与业务相关,所以我无法发布实际内容。
标签: pandas pandas-groupby