在python中有一个数据框:
CASE TYPE
1 A
1 A
1 A
2 A
2 B
3 B
3 B
3 B
我如何创建一个结果数据框,该数据框将产生所有案例,如果案例仅分配了“ A”,则为“ A”,如果仅分配“ B”则为“ B”,如果案例同时为A和B,则为“ MIXED” ?
结果将是:
Case Type
1 A
2 MIXED
3 B
这是一个选项,我们首先将TYPE作为列表按组收集CASE
,然后检查length
唯一TYPE的,如果它大于1
,则返回MIXED
TYPE本身:
import pandas as pd
import numpy as np
groups = df.groupby('CASE').agg(lambda g: [g.TYPE.unique()]).
apply(lambda row: np.where(len(row.TYPE) > 1, 'MIXED', row.TYPE[0]), axis = 1)
groups
# CASE
# 1 A
# 2 MIXED
# 3 B
# dtype: object
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句