2016-11-21 8 views
0

の値の組み合わせを見つける私はid_y各ID_Xの合計の組み合わせを見つけたいパンダのデータフレームの列

id_x    id_y 
    a     b 
    b     c 
    c     d 
    d     a 
    b     a 
and so on around (1000 rows) 

DFパンダのテーブルを持っています。 連鎖のようなもの

ie。同様にbがcombinations(b-c,c-d,d-a) and also a-b to be considered as a combination for b(a-b = b-a)

a-b,b-c,c-d との組み合わせを持っていると私はデータフレーム内の別の列にそれぞれの組み合わせを入れることができれば何

id c1 c2 c3...&so on count 
a  b c d    3    
b  c d a    3 

id combinations count 
a   b,c,d  3 
b   c,d,a  3 
c   d,a,b  3 
d   a,b,c  3 
and so on ..(distinct product_id_'s) 

もが持っているデータフレームDF2を作成しましたアプローチは私に従うべきですか? 私のスキルは初心者レベルです。 ありがとうございます。

+2

あなたは何をしたいかについてもっと明確にする必要があります。また、それを行うためにいくつかのコードを書いてみてください。 –

+0

それはもっと複雑です - 入力からすべての出力の組み合わせを追加できると思います。正確に必要なものは少し不明です。ありがとうございました。 – jezrael

+0

@jezraelの場合、a-> bおよびb-> cおよびc-> dの場合 のようにaの連鎖は 'a-> b、c、d'を持つ必要があります。 – Shubham

答えて

1

あなたが何か試みることができる:あなたは、単に行うことができ、組み合わせABがどのように頻繁に、把握する

a  b 2 
     d 1 
b  a 2 
     c 1 
c  b 1 
     d 1 
d  c 1 
     a 1 

result['a', 'b'] 
これは、次のような結果になります

#generate dataframe  
pdf = pd.DataFrame(dict(id_x = ['a','b','c','d','b'], id_y = ['b', 'c', 'd', 'a', 'a'])) 

#generate second dataframe with swapped columns: 
pdf_swapped = pdf.rename(columns = dict(id_x= 'id_y', id_y= 'id_x')) 

#append both dataframes to each other 
pdf_doubled = pd.concat([pdf, dummy_pdf]) 

#evaluate the frequency of each combination: 
result = pdf_doubled.groupby('id_x').apply(lambda x: x.id_y.value_counts()) 

+0

@列' a'組み合わせは 'bとd'ですが、' a-> bとb-> cとc-> dで、aの鎖はa-> b、c、d'を持つ必要があるので 'b、cとd'を望みました。 – Shubham

+0

私は参照してください。 a-> b、b-> c、c-> d、d-> aのようなループをどのように扱うべきですか? –

関連する問題