天天看點

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這一塊出了問題。請問該怎麼解決