【发布时间】:2018-11-16 02:58:43
【问题描述】:
假设我有一个包含 6 列的 Pandas DataFrame 和一个自定义函数,该函数对 2 或 3 列中的元素进行计数并生成布尔输出。当从原始数据框创建groupby 对象并应用自定义函数df.groupby('col1').apply(myfunc) 时,结果是一个长度等于col1 的类别数的系列。如何扩展此输出以匹配原始数据帧的长度?我尝试了transform,但无法使用自定义函数myfunc。
编辑:
这是一个示例代码:
A = pd.DataFrame({'X':['a','b','c','a','c'], 'Y':['at','bt','ct','at','ct'], 'Z':['q','q','r','r','s']})
print (A)
def myfunc(df):
return ((df['Z'].nunique()>=2) and (df['Y'].nunique()<2))
A.groupby('X').apply(myfunc)
我想将此输出扩展为新列 Result,这样在 X 列中有 a 的地方,Result 将是 True。
【问题讨论】:
-
你能给我们看一些你的代码吗?
-
@user7374610,我只是添加了一个简单的示例代码。