DataFrame은 파이썬 Pandas에서 제공하는 2차원 데이터 구조로, 행과 열로 이루어진 표 형태의 데이터를 처리하고 분석하는 데 적합한 자료구조입니다. 지난번에 설명을 드린 Series와 함께 가장 많이 사용되는 Pandas의 데이터 구조 중 하나이며, 다양한 데이터 유형과 크기의 처리를 지원합니다. 그럼, DataFrame의 개념과 객체 생성 방법에 대해, 그리고 JSON 데이터와 DataFrame 형식간의 상호 변환하는 방법을 알아보겠습니다.
DataFrame 개념
DataFrame은 파이썬 Pandas에서 제공하는 2차원 데이터 구조로, 행과 열로 이루어진 표 형태의 데이터를 처리하고 분석하는 데 적합한 자료구조입니다. DataFrame은 행 방향 인덱스와 열 방향 인덱스를 가지며, 각 열은 서로 다른 데이터 유형을 가질 수 있습니다.
DataFrame 객체 생성 방법
DataFrame은 다양한 방법으로 생성할 수 있습니다. 예를 들어, 파이썬의 리스트, 딕셔너리, 넘파이 배열 등을 이용하여 DataFrame을 생성할 수 있습니다. 다음은 리스트를 이용하여 DataFrame을 생성하는 예제 코드입니다.
import pandas as pd
# 데이터 프레임 생성
data = [['Alice', 25], ['Bob', 30], ['Charlie', 35]]
df = pd.DataFrame(data, columns=['Name', 'Age'])
# 출력
print(df)
위 예제 코드는 리스트를 이용하여 DataFrame을 생성합니다. 리스트에는 세 명의 사람에 대한 이름과 나이가 저장되어 있으며, 이를 columns 파라미터를 이용하여 각 열에 해당하는 'Name'과 'Age'로 지정합니다. 생성된 DataFrame은 다음과 같습니다.
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35
또한, CSV 파일, 엑셀 파일, 데이터베이스 등에서 데이터를 읽어와 DataFrame을 생성할 수도 있습니다. Pandas는 이러한 데이터 소스들을 지원하는 다양한 메서드와 함수를 제공합니다.
JSON과 DataFrame 상호 변환 방법
JSON을 DataFrame으로 변환
JSON 데이터를 DataFrame으로 변환하려면, 먼저 json 모듈을 사용하여 JSON 데이터를 파이썬 객체로 읽어온 후, pandas의 DataFrame 함수를 사용하여 데이터프레임으로 변환하면 된다.
예를 들어, 다음과 같은 JSON 데이터가 있다고 가정해보자.
[
{
"name": "John",
"age": 28,
"city": "New York"
},
{
"name": "Sarah",
"age": 25,
"city": "London"
},
{
"name": "Bob",
"age": 32,
"city": "Paris"
}
]
이를 DataFrame으로 변환하려면 다음과 같은 코드를 사용할 수 있다.
import json
import pandas as pd
# JSON 데이터
json_data = '''
[
{
"name": "John",
"age": 28,
"city": "New York"
},
{
"name": "Sarah",
"age": 25,
"city": "London"
},
{
"name": "Bob",
"age": 32,
"city": "Paris"
}
]
'''
# JSON 데이터를 파이썬 객체로 읽어오기
data = json.loads(json_data)
# 데이터프레임으로 변환하기
df = pd.DataFrame(data)
# 결과 출력
print(df)
위 코드를 실행하면 다음과 같은 결과가 출력된다.
name age city
0 John 28 New York
1 Sarah 25 London
2 Bob 32 Paris
데이터프레임의 각 열(column)은 JSON 데이터의 각 키(key)에 해당하며, 각 행(row)은 JSON 데이터의 각 객체(object)에 해당한다. 따라서 JSON 데이터의 객체가 더 많거나 적어도, 더 많은 키를 가질 수 있다.
DataFrame을 JSON으로 변환
DataFrame을 JSON 형식으로 변환하는 방법은 to_json() 메서드를 사용하는 것입니다. 이 메서드를 사용하면 DataFrame을 JSON 형식으로 직렬화하여 문자열로 반환합니다. to_json() 메서드는 여러 가지 인자를 받아 JSON 출력을 조절할 수 있습니다.
다음은 DataFrame을 JSON으로 변환하는 예제 코드입니다. 아래 코드에서는 to_json() 메서드를 사용하여 DataFrame을 JSON 문자열로 변환하고, 이를 출력합니다.
import pandas as pd
# 예제 데이터프레임
df = pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]})
# 데이터프레임을 JSON으로 변환
json_str = df.to_json(orient='records')
# 변환된 JSON 문자열 출력
print(json_str)
위 코드를 실행하면 다음과 같은 JSON 문자열이 출력됩니다.
[{"name":"Alice","age":25},{"name":"Bob","age":30}]
위의 예제 코드에서 orient 인자는 JSON 문자열의 출력 방식을 지정합니다. orient 인자는 다음과 같은 값을 가질 수 있습니다.
- 'split' : 인덱스와 컬럼을 분리한 형태로 출력합니다. 인덱스는 JSON 객체의 index 필드에, 컬럼은 JSON 객체의 columns 필드에 저장됩니다. (기본값)
- 'records' : 각 레코드를 JSON 객체로 출력합니다. 레코드는 JSON 배열에 저장됩니다.
- 'index' : 인덱스를 JSON 객체로 출력합니다.
- 'columns' : 컬럼을 JSON 배열로 출력합니다.
- 'values' : 데이터를 2차원 배열로 출력합니다.
출력 방식을 지정할 때 'records'가 가장 많이 사용됩니다.
이상으로, 파이썬의 Pandas 라이브러리를 이용하여 데이터를 다루는 기초적인 개념과 Pandas의 핵심 데이터 구조인 Series와 DataFrame에 대해 간략히 살펴보았습니다. Pandas와 같은 라이브러리와 데이터 분석 기술들은 데이터를 다루는 모든 분야에서 필수적인 도구로 자리 잡았으며, 지속적인 학습과 개발이 필요한 분야임을 인지하고, 끊임없이 노력하는 자세로 나아가야 할 것입니다.
'파이썬' 카테고리의 다른 글
[Python] 파이썬 문자열 (0) | 2023.05.02 |
---|---|
파이썬 예외처리 다양한 방법과 예시 & 에러 출력 방법 (0) | 2023.04.24 |
[Pandas 기초] DataFrame 합치기 (merge, join, concat) 예제와 함께 알아보기 (0) | 2023.03.08 |
[Pandas 기초] Series에 대한 소개, 사용법, 생성/인덱싱/슬라이싱 예제 코드 (0) | 2023.03.05 |
[파이썬] 데이터 분석 라이브러리 Pandas, Series, DataFrame 소개 (0) | 2023.03.04 |