Io sono un po ' nuovo a questo. Attualmente sto sperimentando con i frame di dati in python e sono un po ' bloccato con qualcosa. Ho bisogno di ottenere le colonne del frame di dati che hanno la stessa differenza tra loro unici elementi ordinati. Io sono in grado di farlo in un codice autonome, ma voglio farlo in modo dinamico ricevendo dal frame di dati in un file.
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)
Io sono in grado di ottenere l'elenco delle liste della differenza. Ora ho bisogno di controllare se tutti gli elementi del diff sono le stesse, se sì allora devi restituire il nome della colonna, che sia prima o sec. L'output che ho ricevuto è:
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])]
Dopo di questo, mi deve restituire la colonna del nome o il nome della lista che ha gli stessi elementi. L'output desiderato dovrebbe essere una lista di nomi di colonna delle colonne che hanno la stessa differenza delle ordinate di elementi univoci. Così qui va:
output - ['first']