使用groupby +转换的更简单方法

时间:2019-08-12 18:40:57

标签: python pandas

我在下面有df:

CLASS   STUDENT
'math'  'Alex'
'math'  'Arthur'
'math'  'Katy'
'eng'   'Jack'
'eng'   'Jack'
'eng'   'Francy'

并且需要这样聚合:

CLASS   STUDENT  NEW_COL
'math'  'Alex'    'Alex', 'Arthur, Katy'
'eng'   'Jack'    'Jack','Francy'

我一直在做以下事情:

df['new_col'] = df.groupby('CLASS').STUDENT.transform(lambda series: ', '.join(series.dropna().unique()))
df.drop('STUDENT')
df.drop_duplicates()

但是似乎太矫kill过正。很可能有一种更简单或更优雅的方法来执行此操作。请假设数据框中还有其他列。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

尝试一下:

@GetMapping("/")
public String index(Model model, OAuth2AuthenticationToken authentication) {
    final OAuth2AuthorizedClient authorizedClient =
            this.authorizedClientService.loadAuthorizedClient(
                    authentication.getAuthorizedClientRegistrationId(),
                    authentication.getName());
    String accessToken=authorizedClient.getAccessToken().getTokenValue();
    System.out.println(accessToken);
    model.addAttribute("userName", authentication.getName());
    return "index";
}