2016-08-23 7 views
0

私はDFがありますパンダのデータフレームの行を比較し、交差を見つけるか?

year name_list 
2009 [sam,maj,mak] 
2010 [sam, mak, ali, mo, za] 
2011 [mp,ki] 

私はNAME_LISTの面で各行を比較し、毎年削除/追加されたどのように多くの新しい名前カウントしたいと思いますが。 予想される結果:

year name_list   added_count removed_count 
2009 [sam,maj,mak]    0   0 
2010 [sam, mak, ali, mo, za]  3   1 
2011 [mp,ki]      2   5 

誰でも手助けできますか?

答えて

1

最初の2行は、2009の値をゼロに初期化することです。年は年代順であり、年はインデックスにあり、別の列ではないと仮定します。また、 'name_list'列の名前の値が重複していないと仮定します。

df.loc[2009,'added_count'] = 0 
df.loc[2009,'removed_count'] = 0 
for i in df.index[1:]: 
    df.loc[i,'added_count'] = len(list(set(df.loc[i,'name_list'])-set(df.loc[i-1,'name_list']))) 
    df.loc[i,'removed_count'] = len(list(set(df.loc[i-1,'name_list'])-set(df.loc[i,'name_list']))) 
関連する問題