람다함수 , Json 파일 읽기(CSV파일 읽기와 비슷)

Yeeun·2025년 4월 25일

Python

목록 보기
18/31

1. 람다(Lambda) 함수란?

람다 함수는 간단한 함수한 줄로 정의할 수 있는 익명 함수입니다. 기본적으로 lambda 키워드를 사용해서 정의하며, 즉시 사용 가능한 함수로, 주로 한 번만 사용되는 간단한 연산이나 처리를 할 때 유용합니다.

람다 함수의 기본 문법:

lambda arguments: expression
  • arguments: 함수의 인자들
  • expression: 인자들을 사용한 계산이나 결과

예를 들어, lambda x: x + 2라는 람다 함수는 x 값을 받아서 2를 더한 결과를 반환합니다. 이는 아래와 같은 일반적인 함수와 동일합니다.

def add_two(x):
    return x + 2

람다 함수 예시: 리스트 정렬

sorted() 함수에서 key 인자와 함께 자주 사용됩니다. 예를 들어, 우리가 국가 정보를 담은 딕셔너리 리스트가 있을 때, GDP를 기준으로 정렬하고 싶다면 람다 함수를 사용할 수 있습니다.

data = [
    {'Country': 'USA', 'GDP': 21433223},
    {'Country': 'China', 'GDP': 14140163},
    {'Country': 'Japan', 'GDP': 5081770}
]

# GDP를 기준으로 내림차순 정렬
sorted_data = sorted(data, key=lambda x: x['GDP'], reverse=True)

print(sorted_data)
  • key=lambda x: x['GDP']: 리스트의 각 항목에서 GDP 값을 추출하여 이를 기준으로 정렬합니다.
  • reverse=True: 내림차순으로 정렬한다는 의미입니다.

2. Pandas를 활용한 데이터 처리

Pandas데이터프레임(DataFrame)을 활용하여 데이터를 효율적으로 관리하고 처리할 수 있는 강력한 라이브러리입니다. Pandas를 사용하면 CSV 파일을 읽고, 데이터를 정렬하고, 필터링하는 작업을 훨씬 더 간단하게 할 수 있습니다.

Pandas 설치

pip install pandas

Pandas 기본 사용법

  1. CSV 파일 읽기

    Pandas에서는 read_csv() 함수로 CSV 파일을 간단하게 읽을 수 있습니다.

    import pandas as pd
    
    df = pd.read_csv('../world-data-2023.csv')
    print(df.head())  # 상위 5개 행 출력
  2. 데이터 정렬

    Pandas에서 데이터프레임의 특정 열을 기준으로 정렬할 수 있습니다. 예를 들어, GDP 열을 기준으로 내림차순으로 정렬하려면 아래와 같이 작성합니다.

    df_sorted = df.sort_values(by='GDP', ascending=False)
    print(df_sorted.head())
  3. 특정 열만 선택

    특정 열을 선택하여 작업을 수행할 수도 있습니다.

    df_selected = df[['Country', 'GDP']]
    print(df_selected.head())

Pandas 장점:

  • 데이터 크기에 관계없이 처리할 수 있는 강력한 성능.
  • 직관적인 문법강력한 데이터 분석 기능을 제공합니다.
  • 복잡한 데이터 처리, 결측치 처리, 그룹화 작업 등을 쉽게 할 수 있습니다.

3. JSON 데이터 처리 (위치 정보와 지진 데이터 예시)

JSON 데이터를 처리하는 방법을 소개하겠습니다. JSON은 데이터 구조를 표현하는 형식으로, Python에서는 json 라이브러리를 사용하여 데이터를 쉽게 다룰 수 있습니다.

예시: 지진 데이터 처리

지금까지 사용한 JSON 데이터를 예로 들어 설명하겠습니다.

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "mag": 1.6,
        "place": "27 km NNW of Susitna, Alaska",
        "time": 1649051836769,
        "updated": 1649052020437,
        "status": "automatic",
        "tsunami": 0,
        "sig": 39,
        "net": "ak",
        "code": "0224bju1jx",
        "alert": null
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-150.7585, 61.7591, 56.3]
      },
      "id": "ak0224bju1jx"
    }
  ]
}

이 데이터를 Python에서 다룰 때는 json.loads()를 사용하여 JSON 문자열을 Python의 딕셔너리로 변환합니다.

from pathlib import Path
import json

# JSON 파일 읽기
path = Path('../mapping_global_datasets/eq_data/eq_data_1_day_m1.geojson')
text = path.read_text(encoding='utf-8')

# JSON 문자열을 Python 딕셔너리로 변환
data = json.loads(text)

# 'features' 키에 있는 데이터 확인
print(len(data['features']))
print(type(data))  # <class 'dict'>
print(type(data['features']))  # <class 'list'>

# 각 지진 데이터 출력
for earthquake in data['features']:
    print(type(earthquake))  # <class 'dict'>
    print(earthquake['properties'])  # 지진 정보 출력
    print(earthquake['properties']['mag'])  # 지진의 magnitude 출력
    break  # 첫 번째 데이터만 출력

설명:

  • json.loads(text): JSON 문자열을 Python 객체로 변환합니다. 이때 변환된 데이터는 딕셔너리입니다.
  • data['features']: JSON 구조에서 features 키를 통해 지진 데이터 목록에 접근합니다. 이는 리스트입니다.
  • 각 항목(earthquake)은 딕셔너리로, properties 키를 통해 각 지진의 속성(예: mag, place 등)에 접근할 수 있습니다.

결론

  • 람다 함수는 간단한 연산을 한 줄로 정의할 수 있는 방법으로, 주로 sorted()filter()와 함께 사용됩니다.
  • Pandas대규모 데이터효율적으로 처리하고 정렬, 필터링 등의 작업을 직관적으로 수행할 수 있는 라이브러리입니다. CSV 파일을 읽고 데이터를 다루는 데 매우 유용합니다.
  • JSON 데이터는 json 라이브러리를 사용하여 문자열Python 객체로 변환한 후, 그 데이터를 쉽게 다룰 수 있습니다.

이번 포스트에서는 CSV 파일과 JSON 데이터를 처리하는 방법을 소개하고, 데이터 정렬 및 람다 함수의 사용법을 설명했습니다. 각 예시를 통해 Python에서 데이터를 다루는 기본적인 기술을 익힐 수 있습니다.

0개의 댓글