1
votes

Fusionner les cellules dans les pandas si les valeurs de deux colonnes sont identiques

J'ai les données suivantes en termes de dataframe

data = pd.DataFrame({'colA': ['a', 'c', 'a', 'e', 'c', 'c'], 'colB': ['b', 'd', 'b', 'f', 'd', 'd'], 'colC':['SD100', 'SD200', 'SD300', 'SD400', 'SD500', 'SD600']})

Je souhaite que la sortie soit jointe [entrez la description de l'image ici] [2]

Je veux y parvenir en utilisant pandas dataframe en python Quelqu'un peut-il m'aider?


1 commentaires

S'il vous plaît, ajoutez vos données dans un bon format afin que l'on puisse copier ces données et effectuer une opération pour vous aider.


3 Réponses :


1
votes

Vous pouvez essayer:

>>> df.groupby(['Column A', 'Column B']).agg(list)
                                Column C
Column A Column B
a        b                [SD100, SD300]
c        d         [SD200, SD500, SD600]
e        f                       [SD400]

  Column A Column B Column C
0        a        b    SD100
1        c        d    SD200
2        a        b    SD300
3        e        f    SD400
4        c        d    SD500
5        c        d    SD600


0 commentaires

0
votes

Je ne sais pas pourquoi vous voulez créer du multi-index, mais vous pouvez simplement sort_values ​​ ou utiliser groupby.

df = df.sort_values(by=['ColumnA','ColumnB'])
df.set_index(['ColumnA', 'ColumnB','ColumnC'], inplace=True)
df
      ColumnA ColumnB ColumnC
    0       a       b   SD100
    1       c       d   SD200
    2       a       b   SD300
    3       e       f   SD400
    4       c       d   SD500
    5       c       d   SD600
import pandas as pd
df = pd.DataFrame({"ColumnA":['a','c','a','e','c','c'],
                 "ColumnB":['b','d','b','f','d','d'],
                 "ColumnC":['SD100','SD200','SD300','SD400','SD500','SD600']})
print(df)


0 commentaires

0
votes

Cela mettra à jour vos données selon vos souhaits

data=data.groupby(['colA','colB'ITED).agg(list)


0 commentaires