Je suis nouveau dans le monde des pandas et j'essaie de joindre les valeurs d'un cadre de données en fonction des clés.
Mon cadre de données ressemble à ceci :
Slug Position Brand Session Transactions Ecommerce CTR Click
A 0 aaa
A 1 bbb
A 2 ccc
A 3 ddd
B 0 bbb
B 1 ccc
B 2 ddd
B 3 eee
C 0 aaa
C 1 ccc
C 2 ddd
A 70 100 500
A abc fgh
B 60 900 400
B abd fgj
C 50 400 100
C ab fp
J'essaie de faire en sorte que ma sortie soit la suivante :
Sortie :
Slug Position Brand Session Transactions Ecommerce CTR Click
A 0 aaa 70 100 500 abc fgh
A 1 bbb
A 2 ccc
A 3 ddd
B 0 bbb 60 900 400 abd fgj
B 1 ccc
B 2 ddd
B 3 eee
C 0 aaa 50 400 100 ab fp
C 1 ccc
C 2 ddd
Ensemble de données :
df = pd.DataFrame({'Slug': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'A', 'A', 'B', 'B', 'C', 'C'],
'Position': ['0', '1', '2', '3', '0', '1', '2', '3', '1', '2', '3', '', '', '', '', '', ''],
'Brand': ['aaa', 'bbb', 'ccc', 'ddd', 'aaa', 'bbb', 'ccc', 'ddd', 'aaa', 'bbb', 'ccc', '', '', '', '', '', ''],
'Session': ['', '', '', '', '', '', '', '', '', '', '', '70', '', '60', '', '50', ''],
'Transaction': ['', '', '', '', '', '', '', '', '', '', '', '80', '', '50', '', '40', ''],
'Ecommerce': ['', '', '', '', '', '', '', '', '', '', '', '700', '', '600', '', '500', ''],
'CTR': ['', '', '', '', '', '', '', '', '', '', '', '', 'abc', '', 'abd', '', 'ffp'],
'Click': ['', '', '', '', '', '', '', '', '', '', '', '', 'ab', '', 'fgh', '', 'fp']})
Il suffit donc de joindre les valeurs en fonction de leur première clé appariée.
Je ne sais pas si je dois utiliser la jointure ou la fusion, car les données se trouvent dans le même cadre de données, et non dans deux cadres différents.
J'ai essayé ceci
df.set_index('Slug').join(df.set_index('Slug'))
mais je reçois cette erreur :
ValueError: columns overlap but no suffix specified: Index(['Position', 'Brand', 'Sessions', 'Transactions', 'Ecommerce CR', 'CTR',
'All clickouts'],
dtype='object')
Comment pourrais-je aller de l'avant en essayant d'obtenir le résultat souhaité ? Je vous remercie de vos suggestions.