2017-06-21 3 views
0

パンダの列3の連続する行の差の結果を列に追加すると、パンダの列3の連続した行の差異は、列1と列2が同じであることを前提にしています。

col1 col2 
A  B  
A  B  
C  D  
C  D 
C  D 

第1のO/P

col1 col2 col3_count 
A  B  2 
A  B  2 
C  D  3 
C  D  3 
C  D  3 

2 O/P

ol1 col2 col3_count diff 
A  B  2  Nan 
A  B  2  0 
C  D  3  Nan 
C  D  3  0 
C  D  3  0 
+0

1.コードなどのコードをフォーマットしてください。 2.何を求めていますか?両方の出力を生成しようとしていますか?または、出力1を生成する方法を知っていて、出力2について質問していますか?そして、「第3列の連続した行の違いの結果」とはどういう意味ですか? – jack6e

答えて

1

1. O/P

df_out = df.assign(col3_count=df.groupby(['col1','col2'])['col1'].transform('size')) 

出力:

col1 col2 col3_count 
0 A B   2 
1 A B   2 
2 C D   3 
3 C D   3 
4 C D   3 

2 O/P

df_out.assign(diff=df_out.groupby(['col1','col2'])['col3_count'].diff()) 

出力:

col1 col2 col3_count diff 
0 A B   2 NaN 
1 A B   2 0.0 
2 C D   3 NaN 
3 C D   3 0.0 
4 C D   3 0.0 
+0

ありがとうございました1番目はうまくいっていましたが、2番目にはエラーが発生しています。これは上記のデータではないためです。 –

関連する問題