차이 독특한 요소를 정렬된 열에 데이터 프레임

0

질문

내가 조금 새로운다. 나는 현재 실험 데이터를 프레임에서는 파이썬 및 이와 함께 갇혀 무언가이다. 야에서 열 데이터를 프레임은 같은 차이 자신의 고유 한 정렬한 요소입니다. 나는 그것을 할 수 있 독립적인 코드,하지만 하고 싶어 그것을 동적으로 그것을 얻기에서 데이터를 프레임에서 파일입니다.

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)

나를 얻을 수 있 목록의 차이입니다. 지금 내가 필요한지 확인하려면 모든 요소에 차이가 동일한,그렇다면 다음을 반환해야의 이름을 열 수초 또는 초입니다. 출력 나이:

   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']
dataframe pandas python
2021-11-24 06:13:28
1

최고의 응답

1

목록을 사용하여 이해력으로 테스트하는 경우 정렬 값 differencies 독특:

#without unique values
output = [col for col in cols if df[col].sort_values().diff().nunique() == 1]
print("OUT - \n", output)
[0]

#with unique values
output = [col for col in cols 
          if df[col].drop_duplicates().sort_values().diff().nunique() == 1]

또:

output = [col for col in cols if np.unique(np.diff(np.unique(df[col]))).shape[0] == 1]
print("OUT - \n", output)
[0]
2021-11-24 07:05:30

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................