람다 함수는 간단한 함수를 한 줄로 정의할 수 있는 익명 함수입니다. 기본적으로 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: 내림차순으로 정렬한다는 의미입니다.Pandas는 데이터프레임(DataFrame)을 활용하여 데이터를 효율적으로 관리하고 처리할 수 있는 강력한 라이브러리입니다. Pandas를 사용하면 CSV 파일을 읽고, 데이터를 정렬하고, 필터링하는 작업을 훨씬 더 간단하게 할 수 있습니다.
pip install pandas
CSV 파일 읽기
Pandas에서는 read_csv() 함수로 CSV 파일을 간단하게 읽을 수 있습니다.
import pandas as pd
df = pd.read_csv('../world-data-2023.csv')
print(df.head()) # 상위 5개 행 출력
데이터 정렬
Pandas에서 데이터프레임의 특정 열을 기준으로 정렬할 수 있습니다. 예를 들어, GDP 열을 기준으로 내림차순으로 정렬하려면 아래와 같이 작성합니다.
df_sorted = df.sort_values(by='GDP', ascending=False)
print(df_sorted.head())
특정 열만 선택
특정 열을 선택하여 작업을 수행할 수도 있습니다.
df_selected = df[['Country', 'GDP']]
print(df_selected.head())
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()와 함께 사용됩니다.json 라이브러리를 사용하여 문자열을 Python 객체로 변환한 후, 그 데이터를 쉽게 다룰 수 있습니다.이번 포스트에서는 CSV 파일과 JSON 데이터를 처리하는 방법을 소개하고, 데이터 정렬 및 람다 함수의 사용법을 설명했습니다. 각 예시를 통해 Python에서 데이터를 다루는 기본적인 기술을 익힐 수 있습니다.