2017-03-16 61 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

真棒,高兴地帮助。 –