다음 데이터 프레임이 있습니다.
df = pd.DataFrame([['1','aa', 'fff'], ['1', 'aa', 'ggg'], ['1', 'aa', 'eee'],
['2','aa', 'eee'], ['2', 'aa', 'ggg'], ['2', 'aa', 'fff'],
['3','bb', 'hhh'], ['3', 'bb', 'mmm'], ['3', 'bb', 'kkk'],
['3', 'bb', 'jjj'], ['4','bb', 'kkk'], ['4', 'bb', 'mmm'],
['4', 'bb', 'hhh'], ['4', 'bb', 'jjj'], ['5','aa', 'ggg'],
['5', 'aa', 'eee'], ['5', 'aa', 'fff']], columns=['foo', 'bar','name_input'])
이제 조건에 따라 "name_input"열의 값을 정렬해야합니다. 조건은
결국 다음과 같은 출력을 목표로하고 있습니다.
df = pd.DataFrame([['1','aa', 'eee'], ['1', 'aa', 'fff'], ['1', 'aa', 'ggg'],
['2','aa', 'eee'], ['2', 'aa', 'fff'], ['2', 'aa', 'ggg'],
['3','bb', 'hhh'], ['3', 'bb', 'jjj'], ['3', 'bb', 'kkk'],
['3', 'bb', 'mmm'], ['4','bb', 'hhh'], ['4', 'bb', 'jjj'],
['4', 'bb', 'kkk'], ['4', 'bb', 'mmm'], ['5','aa', 'eee'],
['5', 'aa', 'fff'], ['5', 'aa', 'ggg']], columns=['foo', 'bar','name_input'])
행별로 인덱스 재정렬을 시도했습니다. 그러나 작동하지 않는 것 같습니다.
df = df.pivot(index="foo", columns="bar", values="name_input")
어떤 도움이라도 대단히 감사합니다!
지금까지 내가 이해, 당신은 GROUPBY 다음 원하는 (변환 할 필요 정렬하기 에) 열을 categorical
다음 sort_values
:
d = {'aa':['eee', 'fff', 'ggg'],'bb':['hhh' ,'jjj', 'kkk','mmm']} #dict of the conditions
final = pd.concat(g.reset_index().assign(name_input =
pd.Categorical(g.reset_index()['name_input'],d.get(i),ordered=True))
.sort_values('name_input') for i,g in
df.set_index('name_input').groupby(['foo','bar'])).reindex(df.columns,axis=1)
foo bar name_input
2 1 aa eee
0 1 aa fff
1 1 aa ggg
0 2 aa eee
2 2 aa fff
1 2 aa ggg
0 3 bb hhh
3 3 bb jjj
2 3 bb kkk
1 3 bb mmm
2 4 bb hhh
3 4 bb jjj
0 4 bb kkk
1 4 bb mmm
1 5 aa eee
2 5 aa fff
0 5 aa ggg
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다