2016-10-07 4 views
2

I次のデータセットがあります。パンダグループとレコードグループ化された値

Code Value 
100004 1 
1017 1 
1017 3 
1071 1 
1071 3 
3039 1 
3397 1 
3397 3 

私は( 'コード'、as_index = False)が.agg( '数')

pandasDataFrame.groupbyを使用して値をカウントすることができました

私は数えたいと同時に、新しい列に値を記録したいと思います。結果は下の例のようになります

Code  NoValues  Values 
100004  1    1 
1017  2    1,3 
1071  2    1,3 
3039  1    1 
3397  2    1,3 

パンダでできるのですか?例えば

df.Value.groupby(df.Code).agg({'Values': lambda g: list(g), 'NumValues': lambda g: len(g)}).reset_index() 

答えて

1

あなたはgroupby + aggを使用することができます

df = pd.DataFrame({'Code': [1004, 1004, 1007], 'Value': [1, 2, 8]}) 
>>> df.Value.groupby(df.Code).agg({'Values': lambda g: list(g), 'NumValues': lambda g: len(g)}).reset_index() 
    Code NumValues Values 
0 1004 2 [1, 2] 
1 1007 1 [3] 
+0

はあなたに@Ami Tavoryをありがとう、私は探していますものではありません。列には、カウントされた値であるコンマで区切られた文字列として記録する値の列にあります。したがって、コード1004の場合、2のカウントがあり、1と2によって形成されるため、最終結果は1004 2(値の数)1,2(カウントされた値) –

+0

@IonutSandricそれは今。それは私が最初に答えた後、あなたの質問をフォーマットしたことです。少し待って。 –

+0

@IonutSandric今すぐご覧ください。 –

関連する問題