Je suis un peu nouveau pour cette. Je suis actuellement à l'essai avec des trames de données en python et je suis un peu coincé avec quelque chose. J'ai besoin d'obtenir les colonnes dans le bloc de données qui ont la même différence entre le caractère unique de leurs éléments triés. Je suis capable de le faire dans un seul code, mais je veux le faire de manière dynamique par l'obtenir à partir de la trame de données dans un fichier.
import numpy as np
import pandas as pd
first = [20, 10, 40, 30, 10]
sec = [94, 74, 34, 80]
df = pd.DataFrame([(first,sec) for first,sec in zip(first,sec)])
print(df)
cols = list(df.columns)
sorted_df = df.sort_values(by = cols, ascending = True)
print("sorted - \n", sorted_df)
all_unique = [sorted_df[col].unique() for col in cols]
print("UNIQUE:\n", all_unique)
diff = [np.diff(lst) for last in all_unique]
print("DIFF - \n", diff)
Je suis en mesure d'obtenir la liste des listes de la différence. Maintenant, j'ai besoin de vérifier si tous les éléments de la diff sont les mêmes, si oui, puis retourner le nom de la colonne, que ce soit la première ou de la sec. La sortie j'ai eu droit à:
0 1
0 20 94
1 10 74
2 20 34
3 30 80
sorted -
0 1
0 20 94
1 10 74
2 20 30
3 30 80
UNIQUE:
[array([10, 20, 30]), array([74, 34, 94, 80])]
DIFF -
[array([10, 10]), array([-40, 60, -14])]
Après cela, je doit retourner le nom de la colonne ou le nom de la liste qui a les mêmes éléments. La sortie désirée doit être une liste de noms de colonnes des colonnes qui ont la même différence de la triée des éléments uniques. Donc, ici, il devrait être:
output - ['first']