groupby基于条件

时间:2017-03-16 08:37:06

标签: python pandas

我在处理我的数据。 这是我的数据。

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 个答案:

答案 0 :(得分: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列的前三个字符。然后,您可以分组并删除临时列。正如我所说,我确信有一种更有效的方式,所以我不确定你是否会受到数据集大小的限制。