2017-01-15 9 views
0

列の値で行をグループ化する必要があります。Pandas groupbyを使ってカウントを取得するにはどうすればいいですか?

これは、データフレームは、次のようになります。

Id  model  c3 c4 c5 c6 ...etc 
174_ap c:143  ar ... 
174_dp c:143  rv ... 
777_ap c:177  gb ... 
777_dp c:177  ch ... 

車につき2行があり、AP通信は、チェックインとチェックアウトの上、チェックDP最初のチェックです。モデルは唯一の私は参加したい行に繰り返されるので、私はそれで参加しようとした:

df = df.groupby('model') 

しかし、結果のDFは、正確に、以前のもののように見えますが、何も変わっていません。

私はここで間違っていますか?

PS:各車とチェックの列数が異なります。

+0

グループ化されたdfで実際に*行う* – smci

答えて

0

modelが繰り返されているようです。したがって、グループ化の場合、カウントを取得する予定の場合は、groupbyが機能します。

enter image description here

0

私は、Idを分割し、分割してインデックスを設定し、アンスタックと思います。

idx = df.Id.str.split('_', expand=True).values.T.tolist() 
df.drop('Id', 1).set_index(idx).stack().unstack([1, 2]) 

     ap     dp    
    model c3 c4 c5 model c3 c4 c5 
174 c:143 ar ar ar c:143 rv rv rv 
777 c:177 gb gb gb c:177 ch ch ch 
関連する問題