2017-06-05 60 views
1

我试着用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 

这里有什么问题?

感谢,

AP

回答

3

或者你可以这样来做:

In [48]: df.groupby('col')['val'].agg('-'.join) 
Out[48]: 
col 
A Cat-Tiger 
B  Ball-Bat 
Name: val, dtype: object 
1

只是尝试

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