팬더의 pd.pivot() 또는 pivot_table() 함수에 문제가 있습니다.팬더의 트러블 피벗 (R 확산)
나는이있다 : 나는 모든 것을 시도했습니다
dt site_id FGE WSH
1 a 8 5
1 b 3 7
1 c 1 5
2 a 2 3
2 b 5 7
2 c 2 5
:
df = pd.DataFrame({'site_id': {0: 'a', 1: 'a', 2: 'b', 3: 'b', 4: 'c', 5:
'c',6: 'a', 7: 'a', 8: 'b', 9: 'b', 10: 'c', 11: 'c'},
'dt': {0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1,6: 2, 7: 2, 8: 2, 9: 2, 10: 2, 11: 2},
'eu': {0: 'FGE', 1: 'WSH', 2: 'FGE', 3: 'WSH', 4: 'FGE', 5: 'WSH',6: 'FGE', 7: 'WSH', 8: 'FGE', 9: 'WSH', 10: 'FGE', 11: 'WSH'},
'kw': {0: '8', 1: '5', 2: '3', 3: '7', 4: '1', 5: '5',6: '2', 7: '3', 8: '5', 9: '7', 10: '2', 11: '5'}})
df
Out[140]:
dt eu kw site_id
0 1 FGE 8 a
1 1 WSH 5 a
2 1 FGE 3 b
3 1 WSH 7 b
4 1 FGE 1 c
5 1 WSH 5 c
6 2 FGE 2 a
7 2 WSH 3 a
8 2 FGE 5 b
9 2 WSH 7 b
10 2 FGE 2 c
11 2 WSH 5 c
내가이 원하는!
df.pivot_table(index = ['site_id','dt'], values = 'kw', columns = 'eu')
또는
df.pivot(index = ['site_id','dt'], values = 'kw', columns = 'eu')
은 일을해야합니다. 나는 또한) (언 스택 시도 : 그것은 당신에게 문제가 준 이유 (
unstack
와)
df.set_index(['dt','site_id','eu']).unstack(level = -1)
아하겠습니다. 왜 aggfunc가 필요한지 혼란 스러웠습니다. 바라기를 그들은 다음 갱신에있는 그 필요를 제거한다 :) – Zafar