我有一个如下的 Dataframe
| 主键|姓名|价值|
| - ------|- ------|- ------|
| 一百二十三|美国广播公司|数值1|
| 一百二十三|定义|数值2|
| 一百二十三|吉|数值3|
| 四百五十六|美国广播公司|数值4|
| 七八九|钠氮|值5|
| 七八九|钠氮|数值6|
| 一百四十七|钠氮|值7|
我想应用以下逻辑:
1.按"主键"列的值分组
1.如果name列不是NaN,则创建一个新列"dataAggregated",其中"name"和"value"像字典一样组合在一起
1.如果name列为NaN,则创建一个新列"dataAggregated",其中"value"列中的数据用逗号分隔
(When它是按"主键"分组的,则所有"名称"数据要么有NaN,要么没有NaN。分组时不能混合使用这两种数据)
预期输出 Dataframe 应如下所示:
| 主键|数据聚合|
| - ------|- ------|
| 一百二十三|('abc ':'值1 ',' def ':'值2 ',' ghi ':'值3 '}|
| 四百五十六|('abc ':'数值4 '}|
| 七八九|"值5"、"值6"|
| 一百四十七|'值7'|
你知道怎么才能做到吗?谢谢
1条答案
按热度按时间68de4m5k1#
您可以对
groupby.apply
使用自定义聚合:输出: