2017-03-16 150 views
0

我正在處理我的數據。 這是我的數據。groupby根據條件

enter image description here

我寫我這樣的代碼。

complete_data = complete_data.groupby(['STDR_YM_CD', 'TRDAR_CD' ]).sum().reset_index() 

我有像下面的圖片數據框執行代碼

enter image description here

之後,但我想基於聚集在SVC_INDUTY_CD列字符的前三個字母像下面照片的值。

enter image description here

這裏是我的數據鏈路 http://blogattach.naver.com/c356df6c7f2127fbd539596759bfc1bd1848b453f1/20170316_215_blogfile/khm2963_1489653338468_dtPz6k_csv/test2.csv?type=attachment

預先感謝

回答

1

我敢肯定有一個更好的辦法,但是這是你可以做到這一點的一種方法:

complete_data['first_three_temp'] = complete_data['SVC_INDUTY_CD'].str[:3] 
complete_data = complete_data.groupby(['STDR_YM_CD', 'TRDAR_CD', 'first_three_temp' ], as_index=False).sum() 
complete_data.drop('first_three_temp', axis=1, inplace=True) 

這將添加一個僅包含SVC_INDUTY_CD的前三個字符的臨時列柱。然後,您可以對該臨時列進行分組。正如我所說,我確信有一個更有效的方法,所以我不確定你是否會受到數據集大小的限制。

+0

謝謝~~我有解決問題的力量!!! –

+0

真棒,高興地幫助。 –