Jestem trochę początkujący w tej sprawie. Obecnie jestem eksperymentować z ramkami danych w pythonie i trochę zatrzymany z czymś. Muszę dostać kolumny w ramce danych, które mają taką samą różnicę między ich unikalnych отсортированными elementami. Mogę to zrobić w trybie offline kodzie, ale chcę to zrobić dynamicznie, po otrzymaniu go z ramki danych w pliku.
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)
Mogę dostać listę list różnic. Teraz muszę sprawdzić, czy wszystkie elementy w diff są takie same, jeśli tak, to trzeba przywrócić nazwę kolumny, czy jest to pierwszy czy drugi. Wynik, który otrzymałem, jest taki:
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])]
Po tym muszę odzyskać nazwę kolumny lub nazwę listy, w którym znajdują się te same elementy. Pożądanym wynikiem musi być listę nazw kolumn kolumn, które mają taką samą różnicę posortowane unikalnych elementów. Tak, że tutaj to powinno być:
output - ['first']