두 개의 스크립트를 작성했습니다.Python/Pandas HDF5 NameError 문제
첫 번째 스크립트는 한 번만 실행하도록 설계하고, 생성 된 스크립트 내에서 다음 코드를 사용 HDF5 파일에 저장됩니다 df_empty, storage.h5라는 큰, 빈 dataframe :
from pandas import HDFStore
hdf = HDFStore('storage.h5')
hdf.put('d1', df_empty, format='table', data_columns=True)
완벽하게 작동합니다.
나의 다음 스크립트는 매 30 분을 실행하고 반 시간마다 생성 된 CSV 파일에서 데이터를 수 있도록 설계되어 :
새로운 dataframe DF에이 데이터를 넣어;
오기 DF2 같은 storage.h5에서 dataframe;
병합 인덱스 조합 명령을 사용 DF DF2 및 DF3로;
storage.h5에 새 데이터 프레임을 다시 저장하여 효과적으로 이전 파일을 덮어 씁니다.
from pandas import HDFStore store = pd.HDFStore('storage.h5') df2 = pd.DataFrame(store['d1']) df3 = df.reindex(index = df2.index.union(df.index)) hdf.put('d1', df3, format='table', data_columns=True)
내가 Jupyter 노트북에 순차적으로 두 개의 스크립트를 실행하는 경우이 잘 작동 (나는 아나콘다의 최신 버전을 설치하고이를 실행하고 다음과 같이
코드의 관련 섹션입니다 Windows 7 컴퓨터에서).
그러나 명령 프롬프트에서 실행하면 문제가 발생합니다. 첫 번째 스크립트는 오류없이 실행됩니다. '= hdf.put ('D1 ', DF3, 형식 파일 "myfile.py", 라인 64 :
역 추적 (마지막으로 가장 최근 통화) : 그러나, 두 번째 스크립트는 다음과 같은 오류를 던졌습니다 테이블 ', data_columns = 참) 나가서 설명하자면 NameError : 이름'HDF는 '열린 파일을 남아있는 닫기 정의되지 않은 :로에 storage.h5 ... donestorage.h5 ... 사람이 어떤 제안이 있습니까
을 수행을 내가 잘못했을 수도 있니?
예! 고맙습니다. 잘 보였다. 그 트릭을 한 것으로 보인다. – pottolom