JSON을 Pandas DataFrame으로 변환
이 기사에서는 JSON을 Pandas DataFrame으로 변환하는 방법을 소개합니다.
JSON은 JavaScript Object Notation을 나타냅니다. 이것은 JavaScript의 객체 형식을 기반으로하며 구조화 된 데이터를 표현하는 인코딩 기술입니다. 요즘에는 특히 서버와 웹 응용 프로그램 간의 데이터 공유에 널리 사용됩니다.
프로그래밍 언어 데이터 구조의 단순성과 영향으로 인해 JSON은 매우 인기를 얻고 있습니다. 비교적 이해하기 쉽고 다음은 API의 JSON 응답에 대한 간단한 예입니다.
{
"Results":
[
{ "id": "01", "Name": "Jay" },
{ "id": "02", "Name": "Mark" },
{ "id": "03", "Name": "Jack" }
],
"status": ["ok"]
}
예제에서 볼 수 있듯이 JSON은 중첩 된 목록과 사전의 조합으로 보입니다. 따라서 JSON 파일에서 데이터를 추출하고이를 Pandas DataFrame으로 저장하는 것이 비교적 쉽습니다.
Python의 Pandas 및 JSON 라이브러리는이를 달성하는 데 도움이 될 수 있습니다. JSON 문자열을 DataFrame으로 변환하는 데 도움이 될 수있는 두 개의 함수read_json()
과json_normalize()
가 있습니다.
json_normalize()
를 사용하여 Pandas DataFrame에 JSON
json_normalize()
함수는 중첩 된 JSON 문자열을 읽고 DataFrame을 반환하는 데 매우 널리 사용됩니다. 이 함수를 사용하려면 먼저 Python의 JSON 라이브러리에있는json.loads()
함수를 사용하여 JSON 문자열을 읽어야합니다. 그런 다음이 JSON 객체를json_normalize()
에 전달하면 필요한 데이터가 포함 된 Pandas DataFrame이 반환됩니다.
import pandas as pd
import json
from pandas import json_normalize
data = """
{
"Results":
[
{ "id": "1", "Name": "Jay" },
{ "id": "2", "Name": "Mark" },
{ "id": "3", "Name": "Jack" }
],
"status": ["ok"]
}
"""
info = json.loads(data)
df = json_normalize(info["Results"]) # Results contain the required data
print(df)
출력:
id Name
0 1 Jay
1 2 Mark
2 3 Jack
read_json()
을 사용하여 Pandas DataFrame에 JSON
JSON을 DataFrame으로 변환하는 또 다른 Pandas 함수는 더 간단한 JSON 문자열을위한read_json()
입니다. Pandas DataFrame에 데이터를 저장하는 함수에 JSON 파일 또는 JSON 문자열의 경로를 직접 전달할 수 있습니다. read_json()
에는 많은 매개 변수가 있으며, 그중orient
는 JSON 문자열의 형식을 지정합니다.
단점은 중첩 된 JSON 문자열과 함께 사용하기 어렵다는 것입니다. 따라서read_json()
을 사용하기 위해 아래와 같이 훨씬 더 간단한 예제를 사용합니다.
import pandas as pd
data = """
{
"0":{
"Name": "Jay",
"Age": "17"
},
"1":{
"Name": "Mark",
"Age": "15"
},
"2":{
"Name": "Jack",
"Age":"16"
}
}
"""
df = pd.read_json(data, orient="index")
print(df)
출력:
Name Age
0 Jay 17
1 Mark 15
2 Jack 16
JSON 문자열 fromat이 패턴과 {index : {column: value}}
와 일치하기 때문에orient
를'index'
로 설정합니다.
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관련 문장 - Pandas DataFrame
- Pandas DataFrame 열 헤더를 목록으로 가져 오는 방법
- Pandas DataFrame 열을 삭제하는 방법
- Pandas 에서 DataFrame 열을 Datetime 으로 변환하는 방법
- Pandas DataFrame에서 float를 정수로 변환하는 방법
- 한 열의 값으로 Pandas DataFrame 을 정렬하는 방법
- Pandas 그룹 및 합계를 집계하는 방법