【发布时间】:2018-03-24 13:21:08
【问题描述】:
我的数据框如下:
| types | freq | TypeList
0 | Q11424 (item) | 29 | Q11424 (item),Q571 (item)
1 | Q571 (item) | 9 | Q11424 (item),Q571 (item)
0 | Q11012 (item) | 6 | Q11012 (item)
0 | Q4830453 (item) | 39 | Q4830453 (item)
0 | Q7725634 (item) | 2 | Q7725634 (item),Q571 (item)
1 | Q571 (item) | 9 | Q7725634 (item),Q571 (item)
0 | Q785479 (item) | 1 | Q785479 (item),Q1344 (item)
1 | Q1344 (item) | 1 | Q785479 (item),Q1344 (item)
“类型”列实际上是“类型列表”的扁平列。 freq 列表示列类型中每个值的频率。这些频率来自整个数据帧。在这里,我只是添加了其中的几行。例如。 Q571 在类型列中出现了 9 次,因此 freq=9。 TypeList 列是每条记录的类型列表。如果 TypeList 列将包含一种以上的类型,我想添加新列 SuperType,它将具有最常见的类型。例如。我想要以下结果:
| types | freq | TypeList |SuperType
0 | Q11424 (item) | 29 | Q11424 (item),Q571 (item) | Q11424
1 | Q571 (item) | 9 | Q11424 (item),Q571 (item) | Q11424
0 | Q11012 (item) | 6 | Q11012 (item) | Q11012
0 | Q4830453 (item) | 39 | Q4830453 (item) | Q4830453
0 | Q7725634 (item) | 2 | Q7725634 (item),Q571 (item) | Q571
1 | Q571 (item) | 9 | Q7725634 (item),Q571 (item) | Q571
0 | Q785479 (item) | 1 | Q785479 (item),Q1344 (item) | Q785479
1 | Q1344 (item) | 1 | Q785479 (item),Q1344 (item) | Q785479
在第一行,TypeList 列的值为“Q11424 (item),Q571 (item)”。所以我想检查这两种类型的频率,即 29 和 9。并在该行的 superType 列中分配最常见的类型,即本例中的 Q11424。
【问题讨论】:
标签: python pandas dataframe group-by max