2017-06-05 20 views
1

groupbyを使用して複数の値を持つ行をグループ化しようとしました。区切り記号で区切り文字を持つPandas 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 Cat-Tiger 
B Ball-Bat 

のように見えるように、私は

、これがもたらした

group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x)) 
を試してみました、区切り文字を紹介したいと思います

A CatTiger 
B BallBat 

を得ました

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)) 
関連する問題