Я немного новичок в этом деле. В настоящее время я экспериментирую с фреймами данных в python и немного застрял с чем-то. Мне нужно получить столбцы во фрейме данных, которые имеют одинаковую разницу между их уникальными отсортированными элементами. Я могу сделать это в автономном коде, но я хочу сделать это динамически, получив его из фрейма данных в файле.
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)
Я могу получить список списков различий. Теперь мне нужно проверить, все ли элементы в diff одинаковы, если да, то нужно вернуть имя столбца, будь то первый или второй. Результат, который я получил, таков:
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])]
После этого я должен вернуть имя столбца или имя списка, в котором есть те же элементы. Желаемым результатом должен быть список имен столбцов столбцов, которые имеют одинаковое различие отсортированных уникальных элементов. Так что здесь это должно быть:
output - ['first']