pandas 在panda中使用groupby定义聚合函数

dhxwm5r4  于 2023-01-15  发布在  其他
关注(0)|答案(2)|浏览(155)

我想使用groupbyagg折叠数据集,但是折叠后,我希望新列只显示分组行的字符串值。例如,初始数据为:

df = pd.DataFrame([["a",1],["a",2],["b",2]], columns=['category','value'])

    category    value
0      a         1
1      a         3
2      b         2

预期输出:

category   value
0     a      grouped
1     b         2

我应该如何修改我的代码(显示"grouped"而不是3):

df=df.groupby(['category'], as_index=False).agg({'value':'max'})
wqnecbli

wqnecbli1#

可以将lambda与三进制一起使用:

df.groupby("category", as_index=False)
    .agg({"value": lambda x: "grouped" if len(x) > 1 else x})

这将输出:

category    value
0        a  grouped
1        b        2
ffx8fchx

ffx8fchx2#

另一种可能的解决方案:

(df.assign(value = np.where(
    df.duplicated(subset=['category'], keep=False), 'grouped', df['value']))
 .drop_duplicates())

输出:

category    value
0        a  grouped
2        b        2

相关问题