Bunun için biraz yeni duyuyorum. Şu anda python'da veri çerçeveleri deniyorum ve bir şeyle biraz sıkışıp kaldım. Benzersiz sıralanmış öğeleri arasında aynı farka sahip olan veri çerçevesindeki sütunları almam gerekiyor. Bunu tek başına bir kodda yapabilirim, ancak bunu bir dosyadaki veri çerçevesinden alarak dinamik olarak yapmak istiyorum.
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)
Fark listelerinin listesini alabiliyorum. Şimdi, farktaki tüm öğelerin aynı olup olmadığını kontrol etmem gerekiyor, eğer evet ise, önce veya saniye olsun, sütunun adını döndürmem gerekiyor. Aldığım çıktı şu şekildedir:
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])]
Bundan sonra, sütun adını veya aynı öğelere sahip liste adını döndürmeliyim. İstenen çıktı, sıralanmış benzersiz öğelerle aynı farklılığa sahip sütunların sütun adlarının bir listesi olmalıdır. Yani burada olmalı:
output - ['first']