无法将自定义函数二重奏应用于“ DataFrame”对象是可变的,因此不能进行哈希处理

问题描述

我想以这种方式应用功能

def create_output_column(myDf):
    res = myDf.transpose()    
    return res

df.groupby('id').apply(create_output_column(df))

我不知道为什么会收到错误消息

TypeError: 'DataFrame' objects are mutable,thus they cannot be hashed

当然,我知道我可以更轻松地进行转置,但这只是一个更复杂函数的示例,但即使在这个简单示例中,我仍然会出错。有人可以在这里帮助我吗?我知道一个数据框无法进行哈希处理,但是我什至看不到要在何处进行哈希处理。

解决方法

import pandas as pd
d = {'id': [1,2,1],'col2': [3,4,5]}
df = pd.DataFrame(data=d)
df

示例数据框

    id  col2
0   1   3
1   2   4
2   1   5

GroupBy(我对组应用了最小值)

df2 = df.groupby('id')['id','col2'].min()
df2

中间数据

   id   col2
id      
1   1   3
2   2   4

应用自定义功能

df = create_output_column(df2)
df

结果:

id      1   2
_______________
id      1   2
col2    3   4