programing

열에서 고유한 값을 찾은 다음 정렬합니다.

bestcode 2022. 9. 5. 23:01
반응형

열에서 고유한 값을 찾은 다음 정렬합니다.

팬더 데이터 프레임이 있어요열 중 하나의 고유한 값을 오름차순으로 인쇄하려고 합니다.저는 이렇게 하고 있습니다.

import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()

문제는 제가 이 병에 걸린다는 것입니다.None출력에 사용합니다.

: 반복 가능한 항목에서 새 정렬 목록을 반환합니다sorted(iterable).

코드

import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print(sorted(a))

산출량

[1, 2, 3, 6, 8]

sort sort in place를 지정하면 아무것도 반환되지 않습니다.

In [54]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
a

Out[54]:
array([1, 2, 3, 6, 8], dtype=int64)

그래서 네가 전화해야 해print a에의 호출 후에 다시sort.

예:

In [55]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
print(a)

[1 2 3 6 8]

unique() 대신 drop_duplicates()를 사용할 수도 있습니다.

df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].drop_duplicates()
a.sort()
print a

저는 오넬리너가 더 좋아요.

print(sorted(df['Column Name'].unique()))

오늘 제가 직접 그 질문을 했습니다.당신의 코드가 '없음'을 반환하는 이유(정확히 같은 방법으로 얻은 것)는

a.sort()

는 정렬 함수를 호출하여 목록을 변환합니다.이것은 수정 명령어인 것으로 알고 있습니다.결과를 보려면 print(a)를 사용해야 합니다.

제 해결책은 판다에게 모든 것을 맡기려고 노력했습니다.

pd.Series(df['A'].unique()).sort_values()

가장 빠른 코드

대규모 데이터 프레임의 경우:

df['A'].drop_duplicates().sort_values()

판다가 뒤에서 하는 일이기 때문에 numpy 종류를 사용하는 것이 좋습니다.

import numpy as np
np.sort(df.A.unique())

하지만 판다에게 모든 것을 하는 것 또한 유효하다.

또 다른 방법은 데이터 유형 집합을 사용하는 것입니다.

집합의 일부 특징: 집합은 순서가 매겨져 있지 않고 혼합된 데이터 유형을 포함할 수 있으며 집합 내의 요소를 반복할 수 없으며 가변적입니다.

질문 해결:

df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
sorted(set(df.A))

List type의 답변:

[1, 2, 3, 6, 8]

언급URL : https://stackoverflow.com/questions/32072076/find-the-unique-values-in-a-column-and-then-sort-them

반응형