0
다음은 회신을 통해 pandas pivot dataframe to 3d data입니다. 나중에 색인을 다시 생성해야합니다 (패널 레이블과 요소의 다른 정렬을 누락 된 레이블의 NaN으로 채우기).팬더 : 패널을 다시 색인 할 때 예기치 않은 결과가 발생했습니다.
reindex (ing)는 한 번에 패널의 모든 축에서 완료 될 때 "잘못된"결과를 초래합니다.
:의 원래의 모든 값을 가지고 있지 않은 4 항목에 (누락 된 항목의 작성 포함) 재 인덱싱의 결과를 살펴 보자 이제In [1]: import pandas as pd
In [2]: df_dict = {'data': {0: 3.0,
...: 1: 3.0,
...: 2: 6.0,
...: 3: 8.0,
...: 4: 9.0,
...: 5: 1.0,
...: 6: 4.0,
...: 7: 0.0,
...: 8: 2.0,
...: 9: 3.0},
...: 'x': {0: 0, 1: 1, 2: 2, 3: 2, 4: 5, 5: 5, 6: 5, 7: 7, 8: 7, 9: 7},
...: 'y': {0: 3, 1: 7, 2: 5, 3: 6, 4: 4, 5: 6, 6: 6, 7: 0, 8: 2, 9: 8},
...: 'z': {0: 6, 1: 0, 2: 3, 3: 9, 4: 1, 5: 2, 6: 6, 7: 5, 8: 9, 9: 0}}
In [3]: df = pd.DataFrame(df_dict)
In [4]: df.set_index(['x','y','z'], inplace=True)
In [5]: df = df['data'].unstack()
In [6]: data_panel = df.to_panel()
:
나 인공 데이터를 예시하자
In [7]: data_panel.reindex(items=range(11), minor_axis=range(11), major_axis=range(11))[4]
Out[7]:
0 1 2 3 4 5 6 7 8 9 10
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN 8 NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN 2 NaN NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[11 rows x 11 columns]
재 인덱싱은 두 단계로 나누어 져
는 예상 된 결과가 검색됩니다 :
In [8]: data_panel.reindex(items=range(11)).reindex(minor_axis=range(11), major_axis=range(11))[4]
Out[8]:
0 1 2 3 4 5 6 7 8 9 10
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[11 rows x 11 columns]
마지막 두 줄의 결과가 서로 다른 이유는 무엇입니까?
해결 (! 제프 고맙습니다)
는 :이 0.13.1 (아니지만 0.13.0)에 팬더에서 수정 된 버그입니다.
업데이트하면 문제가 해결됩니다. 참조 제프의 의견이 울부 짖는 소리뿐만 아니라 github bug report
? 그들의 3 개의 축을 모두 지정할 때 올바르게 다시 색인되지 않는 0.13으로 수정 된 버그였습니다. https://github.com/pydata/pandas/issues/5905 – Jeff
@Jepd .__ version__은 '0.13.0' –
을 읽습니다. 죄송합니다 ... 버그가 0.13.0에 있음을 의미합니다 .... 0.13.1 (now) – Jeff