데이터를 테이블(JSON to Data Table)로 보게 되면 여러 장/단점이 있습니다. Pandas DataFrame으로 데이터 분석시 어떤 장단점이 있는지를 적어보겠습니다.
장점
- 가독성 높음: 데이터가 명확하게 정리돼 있어 이해하기 쉬움
- 비교 용이: 항목 간의 차이나 유사성을 빠르게 비교할 수 있있음
- 정렬과 필터링 편리: 특정 조건에 따라 쉽게 정렬하거나 필터링이 가능하다.
- 엑셀 등과 호환성 높음: 다양한 분석 도구와의 연동이 쉬워 업무에 효율적이이다.
단점
- 큰 데이터는 복잡: 데이터 양이 많아지면 시각적으로 복잡해지고 이해하기 힘들어질 수 있음.
- 패턴 인식 어려움: 숫자 위주의 테이블은 추세나 경향성 등 시각적 패턴 파악이 어렵다.
- 직관성 부족: 표 자체로는 직관적이지 않아, 차트나 그래프 등 추가적인 시각화가 필요할 때도 있음.
JSON to Data Table Code 1
import json
import pandas as pd
import datetime
with open("b0044_AAPL_2406.json", "r") as fp_json:
aapl_2406_data = json.load(fp_json)
pd_tmp_data = []
for _date in aapl_2406_data["Time Series (5min)"]:
tmp_data = aapl_2406_data["Time Series (5min)"][_date]
pd_tmp_data.append([datetime.datetime.strptime(_date, '%Y-%m-%d %H:%M:%S'), float(tmp_data['open']),
float(tmp_data['high']), float(tmp_data['low']), float(tmp_data['close']),
float(tmp_data['volume'])])
df = pd.DataFrame(pd_tmp_data, columns=['date', 'open', 'high', 'low', 'close', 'volume'])
print(df)
Output 1
date open high low close volume
0 2024-06-28 19:55:00 211.41 211.70 211.40 211.660 13341.0
1 2024-06-28 19:50:00 211.31 211.44 211.31 211.440 4606.0
2 2024-06-28 19:45:00 211.31 211.38 211.29 211.350 2269.0
3 2024-06-28 19:40:00 211.28 211.38 211.28 211.325 1970.0
4 2024-06-28 19:35:00 211.16 211.30 211.14 211.280 4367.0
... ... ... ... ... ... ...
3643 2024-06-03 04:20:00 192.85 192.91 192.84 192.910 1499.0
3644 2024-06-03 04:15:00 192.91 192.96 192.84 192.900 2229.0
3645 2024-06-03 04:10:00 192.91 192.95 192.79 192.950 11909.0
3646 2024-06-03 04:05:00 193.10 193.31 192.90 192.900 14845.0
3647 2024-06-03 04:00:00 192.45 193.14 192.45 193.050 26584.0
Code 2
print(df.median())
"""
pandas.DataFreame.median()
axis: The axis on which to standard the {0: index/1: columns} calculation.
skipna : Whether to ignore missing values.
level : For Multi Index, the level at which to perform the calculation.
numeric_only: Whether to use only numbers, decimals, and booleans.
kwargs : Additional keywords to pass to the function.
"""
Output 2
[3648 rows x 6 columns]
date 2024-06-14 11:57:30
open 209.78
high 209.94
low 209.545
close 209.78
volume 26344.5
dtype: object
개인적으로 가장 많이 사용하는 것은 일종에 “튀는 데이터”가 있는지 확인하고 데이터의 중복제거 해야하는지를 확인 하는데 사용하고 있는 것 같습니다.
그런데 데이터를 습관적으로 이렇게 테이블로 만들고 나서, 그래프를 그리거나 데이터를 컨트롤 하는게 익숙한 것은 사실입니다. 아마 데이터를 많이 보시는 분들은 모두 저와 비슷할 거라 생각합니다.
요즘은 조금 달라진 것 같지만 제가 배울때는 거의 개인의 감각에 의존해서 데이터를 분석했습니다. 데이터의 여러 측면을 시각적으로 보고 어느정도 판단이되고 나면 그때 로직을 넣는 방식으로 주로 작업을 했는데 요즘은 데이터가 어떤 특징을 가지는지 여러가지 데이터 분석 순서가 정립되어 있는 것 같습니다.
개인적으로 데이터를 분석하는데 있어서 분석가의 감각이 중요하고 생각하는 이유가 제가 좀 오래된 사람이라서 그런 것 같긴합니다. 최근 트렌드를 잘 못따라가고 있는게 아닌가 하는 생각도 드네요.