Pandas DataFrame으로 HDF5 파일 읽기
세상은 진화하고 있으며 많은 양의 데이터를 저장하고 처리하기 위한 빅 데이터가 매우 중요합니다. 이러한 양으로 인해 기존 스토리지 옵션을 능가하는 새로운 파일 형식이 등장했습니다.
이러한 형식 중 하나는 HDF5 파일입니다. HDF5 파일은 Hierarchal Data Format 버전 5를 나타냅니다. 이 버전이 가장 일반적으로 사용됩니다.
이 파일 형식을 사용하여 대량의 데이터를 저장하고 콘텐츠를 특정 계층 구조로 구성합니다. 이것의 장점은 저장 공간이 덜 필요하고 데이터의 일부에 빠르게 액세스할 수 있다는 것입니다.
h5py
모듈을 사용하여 Python에서 이러한 파일을 효율적으로 사용할 수 있습니다. Pandas 라이브러리를 사용하여 이러한 데이터를 데이터 프레임에 로드할 수도 있습니다.
이 기사는 Python에서 Pandas 라이브러리를 사용하여 HDF5 파일로 작업하는 방법을 보여줍니다.
Pandas를 사용하여 DataFrame을 HDF5로 내보내기
pandas.to_hdf()
함수를 사용하여 데이터 프레임 개체를 HDF5 파일로 내보낼 수 있습니다. 이 함수는 HDFStore를 사용하여 HDF5 파일에 데이터 프레임을 씁니다.
이 기능을 사용하기 전에 몇 가지 중요한 매개변수를 이해해야 합니다.
그룹 식별자를 지정하기 위해 key
매개변수를 사용합니다. mode
매개변수를 사용하여 파일에 대해 다른 모드를 설정할 수 있습니다.
w
모드는 쓰기 모드에서 파일을 열고 이전 내용을 지웁니다. a
모드는 추가 모드에서 파일을 열고 이전 내용을 보존하는 데이터를 추가합니다.
이제 아래 예제에서 이 함수를 사용하여 데이터 프레임을 HDF5 파일로 내보냅니다.
df = pd.DataFrame({"C1": [10, 11, 12], "C2": [20, 21, 22]}, index=[0, 1, 2])
df.to_hdf("file_data.h5", key="df", mode="w")
위의 예는 데이터 프레임의 내용으로 HDF5 파일을 생성합니다. 쓰기 모드에서 파일을 열고 이전 데이터를 지웁니다.
Pandas DataFrame으로 HDF5 파일 읽기
이러한 파일을 읽는 데 직접 사용할 수 있는 pandas.read_hdf()
함수가 있습니다. 그러나 모든 HDF5 파일에서 작동하지는 않습니다.
Pandas 라이브러리는 HDF5 파일의 일부 특정 구조만 이해하므로 이 함수는 이러한 구조에서만 작동합니다.
아래 코드를 참조하십시오.
import pandas as pd
df = pd.read_hdf("file_data.h5")
print(df)
출력:
C1 C2
0 10 20
1 11 21
2 12 22
위 예제에서는 read_hdf()
함수를 사용하여 이전 함수에서 만든 HDF5 파일을 읽습니다. 논의한 바와 같이 HDF5 파일의 모든 구조를 pandas.read_hdf()
함수를 사용하여 직접 가져올 수 있는 것은 아닙니다.
이러한 경우 작동할 수 있는 빠른 수정이 있습니다. 여기에는 h5py
및 numpy
모듈 사용이 포함됩니다.
h5py.File
생성자를 사용하여 주어진 HDF5 파일을 읽고 numpy.array()
함수를 사용하여 numpy
배열에 저장합니다. 그런 다음 pandas.DataFrame()
함수를 사용하여 이 데이터를 데이터 프레임에 보관할 수 있습니다.
이에 대한 형식은 다음과 같습니다.
import pandas as pd
import numpy as np
import h5py
df = pd.DataFrame(np.array(h5py.File("file_data.h5")["df"]))
결론
마무리하기 위해 Python에서 Pandas 라이브러리를 사용하여 HDF5 파일로 작업하는 방법에 대해 논의했습니다. HDF5 파일 형식과 그 장점에 대해 알아보는 것으로 시작했습니다.
to_hdf()
메서드를 사용하여 이러한 파일로 데이터 프레임을 내보냈습니다. 이러한 파일을 읽기 위해 read_hdf()
함수를 사용합니다.
복잡한 구조의 경우 h5py, NumPy 및 Pandas 라이브러리의 함수 조합을 사용하여 파일을 데이터 프레임으로 읽을 수 있습니다.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn