1
다음과 같은 문제가 있습니다. 정수 열 이름과 기간 인덱스를 사용하여 DataFrame을 생성했습니다. 이제 다음 함수를 사용하여 열의 이름을 바꾼 경우 df.rename (columns = lambda x : str (x), inplace = True)문자열 열 이름이있는 DataFrame
따라서 열의 유형을 다음과 같이 변환합니다. 이상한 행동 : 작업 전에 프레임에서 한 열을 검색하면 시리즈가 있습니다. 이제 일부 열에서 DataFrame을 얻습니다. 이전에 df.loc [:, 1]이 시리즈를 제공했습니다.
이제 df.loc [:, '1']은 PeriodIndex 길이가 0 인 DataFrame을 제공하고 df의 전체 원본 열.
누군가 내가 잘못된 것을하고 있는지 또는 버그를 걸러 냈는지 생각하는 사람이 있습니까? 여기
버그를 재현 코드 조각입니다 (?) :A = pd.DataFrame(dict(zip(range(0,9000), [pd.Series([1,2,3], [pd.Period(1), pd.Period(2), pd.Period(3)]) for x in range(0,9000)])))
A[5000]
A.rename(columns = lambda x: str(x), inplace=True)
A['5000'] # This should return a DataFrame with a zero-PeriodIndex and the full columns!
사전에 대단히 감사와 안부 마크
이상합니다. 파이썬 2.7.3과 팬더 0.11.0을 사용하고 있습니다. 어떤 버전을 사용하고 있습니까? 더 자세히 문제를 조사했습니다. 이상한 동작은 인덱스 32/'32 '부터 시작합니다 ... "PeriodIndex 길이가 0 인 DataFrame과 df의 원본 전체 열을 제공합니다.": A [ '5000'] 아웃 [5] : <클래스 'pandas.core.frame.DataFrame'> PeriodIndex : 0 항목 열 9000 명 엔트리 0으로 dtypes 8999 : INT64 (9000) – McRip
이것은 주인님 (0.12)입니다 ... 이번 주에 올 때 .... 0.11은 다릅니다; 나는 이것에 대한 약간의 고침을 기억하는 것 같다. (검사의 순서와 관련하여) ... – Jeff
https://github.com/pydata/pandas/issues/3594는 관련있다 – Jeff