하나의 레코드가 하나 이상의 그룹에 속할 수있는 퍼지 groupby
을 수행해야합니다. groupby 다중 값 열
DataFrame
있습니다
test = pd.DataFrame({'score1' : pandas.Series(['a', 'b', 'c', 'd', 'e']), 'score2' : pd.Series(['b', 'a', 'k', 'n', 'c'])})
그룹 키의 조합이어야한다 :
score1 score2
0 a b
1 b a
2 c k
3 d n
4 e c
는이 같은 그룹이하고자하는 score1
과 score2
사이의 고유 한 값 0
레코드는 점수 값이 모두 포함되어 있으므로 그룹 a
및 b
이어야합니다. 비슷한 기록 1
은 그룹 b
과 a
이어야합니다. 레코드 2
은 그룹 c
및 k
등이어야합니다.
은이 같은 두 개의 열에서 GROUPBY 일을 시도했다 :
내가 튜플로 그룹 키를 얻을 그러나In [192]: score_groups = pd.groupby(['score1', 'score2'])
- (1, 2), (2, 1), (3, 8) , 등, 레코드가 여러 그룹에있을 수있는 고유 한 그룹 키 대신. 출력은 다음과 같습니다
In [192]: score_groups.groups
Out[192]: {('a', 'b'): [0],
('b', 'a'): [1],
('c', 'k'): [2],
('d', 'n'): [3],
('e', 'c'): [4]}
또한
, 내가 나중에 다른 동작을 사용하고 있기 때문에 인덱스가을 보존해야합니다. 도와주세요!
아마도 데이터 프레임을 옮겨야 할 것 같습니다. 컬럼이 'index, score_name, score'인 경우 이것은 사소한 것입니다. pandas.melt를보고 데이터 프레임을 변환하십시오. – Alex
그래서 .... 원래 색인을 인내해야합니다. – Alex
예, GroupBy 객체의 실제 그룹에 액세스해야 그룹의 일부 작업을 수행 할 수 있습니다. 내 대답을 게시했습니다. – lostsoul29