天天看点

python groupby填充缺失值_python groupby之后对数据聚合aggregate的问题

现在一个数据聚合问题,大致如下:

有一个dataframe,几百行4列,列分别为‘imei’,‘phone’,‘type’,‘contact’。第四列也就是contact列的元素是json格式的字符串。现在我把dataframe根据前三列做groupby,即:

grouped = dt.groupby(['imei','phone','type'])['contact']

然后我自定义了一个函数quchong():

def quchong(arr):

arr.index = range(len(arr))

contact_list = []

for i in range(len(arr)):

data1 = Data(**json.loads(arr[i]))

for j in range(len(data1.data)):

data1.data[j]['email'] = tuple(data1.data[j]['email'])

data1.data[j]['number'] = tuple(data1.data[j]['number'])

contact1 = Contact(**(data1.data)[j])

contact_list.append(contact1)

setlist = set(contact_list)

cont_list = list(setlist)

dict_list = []

for k in range(len(cont_list)):

dict_list.append(cont_list[k].__dict__)

data_dict = {'data':dict_list}

return json.dumps(data_dict)

函数大意是把datafram的第四列数据进行去重工作。我这样调用:

group_quchong = grouped.agg(quchong)

就出错了。但是我把grouped里的每个分组元素提取出来单独调用quchong函数是没问题的。比如说,我这样做:

a=[];

for (k1,k2,k3),group in grouped:

a.append(group)

把每个分组元素提取出来放到列表里,然后单独调用quchong。即 quchong(a[0])是可以的。感觉是agg这一块出了问题。请问该怎么解决