猿问

Pandas groupby与分隔符连接

Pandas groupby与分隔符连接

我尝试使用groupby对具有多个值的行进行分组。


col val

A  Cat

A  Tiger

B  Ball

B  Bat


import pandas as pd

df = pd.read_csv("Inputfile.txt", sep='\t')

group = df.groupby(['col'])['val'].sum()

我有


A CatTiger

B BallBat

我想介绍一个分隔符,以便我的输出看起来像


A Cat-Tiger

B Ball-Bat

我试过了,


group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))

这产生了,


A C-a-t-T-i-g-e-r

B B-a-l-l-B-a-t

这是什么问题?




海绵宝宝撒
浏览 740回答 2
2回答

白衣非少年

或者你也可以这样做:In [48]: df.groupby('col')['val'].agg('-'.join)Out[48]:colA    Cat-TigerB     Ball-BatName: val, dtype: object更新:回答评论中的问题:In [2]: dfOut[2]:  col    val0   A    Cat1   A  Tiger2   A  Panda3   B   Ball4   B    Bat5   B  Mouse6   B    EggIn [3]: df.groupby('col')['val'].agg('-'.join)Out[3]:colA       Cat-Tiger-PandaB    Ball-Bat-Mouse-EggName: val, dtype: object

慕桂英4014372

试一试group = df.groupby(['col'])['val'].apply(lambda x: '-'.join(x))
随时随地看视频慕课网APP

相关分类

Python
我要回答