J'ai ce fichier de données comme entrée Lecture de Excel: sortie souhaitée: p> J'ai essayé ce qui suit, les deux ont donné des erreurs p>
3 Réponses :
# convert type to string you can also use .astype(str) which is vectorized
df["Data"] = df["Data"].map(str)
# group data by name, set index parameters false otherwise you will have "Name" as an index. Theoretically you could simply do ["Data"].apply(list) but aggregate is more scalable in case other columns will be added later on.
df = df.groupby(["Name"], as_index=False).aggregate({"Data": set})
# df["Data"] now contains a set, we want to get a ordered, concatenated string with the delimiter ";" out of it, therefore we use ";".join() to join a list to a string. I use .map which is not vectorized, and this part is therefore probably up for improvement.
df["Data"] = df["Data"].map(lambda x: ";".join(sorted(x)))
Un moyen simple de le faire est -
Lorsque les valeurs de la colonne de données de l'entrée Dataframe sont des chiffres, il m'a donné "TypeError: Séquence de la séquence 0: Instance attendue STR, INT trouvé". Comment puis-je modifier le code si les valeurs de la colonne de données de l'entrée Dataframe sont des chiffres?:
-Merci.
juste faire df = df.astype (str) code> puis exécutez ce code
'DATA>' DATA ' CODE> peut contenir des numéros (comme indiqué dans les commentaires), il est préférable de définir le dtype code> comme STR code>, car .join code> est un < Méthode de code> STR CODE>, et il est plus efficace, puis utilisez mappe code> à l'intérieur de la fonction Lambda (par exemple, Carte (STR, SET (X)) CODE>). LI>
- Utilisez
.groupby < / code> sur 'données' code> et .apply code> une fonction
-
lambda x: ''. Joindre (trié (défini (x)))) code>
- Chaque groupe contient des valeurs non uniques, utilisez donc
Ensemble code> , car un définir code> ne peut contenir que des valeurs uniques. li>
- Utilisez
trié code> si vous Voulez-vous le résultat dans l'ordre, sinon remplacer trié (régler (x)) code> avec SET (x) code>. Li>.
ul>
li>
ul>
li>
xxx pré> ul>
J'aime la solution, cela m'aide à comprendre le codage plus. Cependant, lorsque j'imprime la variable DFG, je n'ai plus de "nom" de colonne ... mais je le comprends. J'ai défini comme_index = true et ajouté .Reset_index () à la fin. J'ai eu cette idée de la solution d'Akshay. Merci.