Maison > développement back-end > Tutoriel Python > Supprimez les doublons dans DF et convertissez-les en obj JSON en python

Supprimez les doublons dans DF et convertissez-les en obj JSON en python

王林
Libérer: 2024-02-22 13:20:03
avant
816 Les gens l'ont consulté

删除 DF 中的重复项并在 python 中转换为 JSON obj

Contenu de la question

J'ai un df similaire à celui ci-dessous

name         series
=============================
a             a1
b             b1
a             a2
a             a1
b             b2
Copier après la connexion

Je dois convertir la série en une liste qui doit être attribuée à chaque nom comme un dictionnaire ou un obj json comme ci-dessous

{
   "a": ["a1", "a2"],
   "b": ["b1", "b2"]
}
Copier après la connexion

Jusqu'à présent, j'ai essayé d'utiliser groupby mais cela regroupe simplement tout dans un seul dictionnaire

test = df.groupby("series")[["name"]].apply(lambda x: x)
Copier après la connexion

Le code ci-dessus donne une sortie de type df

Series
Name
A     0   A1
      2   A2
      3   A1
B     1   B1
      4   B2
Copier après la connexion

Toute aide est grandement appréciée

Merci


Bonne réponse


Premier drop_duplicates 确保有 ,然后 groupby.agg Sous forme de liste :

out = df.drop_duplicates().groupby('name')['series'].agg(list).to_dict()
Copier après la connexion

Ou appelez unique :

out = df.groupby('name')['series'].agg(lambda x: x.unique().tolist()).to_dict()
Copier après la connexion

Sortie : {'a': ['a1', 'a2'], 'b': ['b1', 'b2']}

Si vous avez d'autres colonnes, veillez à ne conserver que celles qui vous intéressent :

out = (df[['name', 'series']].drop_duplicates()
       .groupby('name')['series'].agg(list).to_dict()
      )
Copier après la connexion

Trier la liste :

out = (df.groupby('name')['series']
         .agg(lambda x: sorted(x.unique().tolist())).to_dict()
      )
Copier après la connexion

Exemple :

# input
  Name Series
0    A     Z1
1    B     B1
2    A     A2
3    A     Z1
4    B     B2

# output
{'A': ['A2', 'Z1'], 'B': ['B1', 'B2']}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal