2017-06-05 66 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))