공부/파이썬

[기초] 데이터 사이언스 응용_데이터 형식

keum24 2024. 10. 24. 21:38

데이터 사이언스 응용 과제를 하면서 겸사겸사 하나하나 뜯어보면서 코드를 쓰다보니까

알아서 데이터 형식에 대해서 공부됨.. .ㅎㅎ

 

우선 왜 굳이 리스트로 형식을 바꿔서 저장하나 했는데, 이게 리스트의 장점이 있더라!

바로 다양한 형식을 한 리스트에 저장할 수 있고, 데이터 프레임을 자유자재로 바꿀 수 있어서 데이터 전처리 할 때 유용함!! 이렇게 하나하나 공부해가는 중 

 

과제하면서 모르던거, 정리하고 싶은 내용 정리!

 

첫번째로 데이터 형식에 대한 정리.


1차원 데이터

1차원 데이터 구조:

  1. 리스트 (List):
    • 1차원 데이터입니다. 순차적으로 데이터가 나열된 단일 차원입니다.
    • 특징: 순서가 있으며, 중복을 허용하고, 변경 가능한 자료형입니다. 다양한 데이터 타입을 섞어 저장할 수 있습니다
    • 용도: 일반적으로 데이터의 순서를 유지하면서 수정, 추가, 삭제가 필요한 경우 사용합니다.
    • 예시:
      python
      my_list = [1, "apple", 3.14]
  2. 튜플 (Tuple):
    • 1차원 데이터입니다. 리스트와 비슷하지만 불변(immutable)입니다.
    • 특징: 리스트와 비슷하지만 불변(immutable)입니다. 한 번 생성되면 수정할 수 없습니다. 순서가 있고 중복을 허용합니다.
    • 용도: 변경할 필요가 없는 데이터를 저장할 때 사용합니다. 리스트보다 성능이 약간 더 좋습니다.
    • 예시:
      python
      my_tuple = (1, "banana", 2.718)
  3. 세트 (Set):
    • 1차원 데이터입니다. 순서가 없고 중복을 허용하지 않는 데이터의 모음입니다.
    • 특징: 순서가 없고 중복을 허용하지 않는 컬렉션입니다. 값이 고유해야 할 때 사용합니다.
    • 용도: 중복 데이터를 제거하거나 집합 연산(합집합, 교집합 등)을 할 때 유용합니다.
    • 예시:
      python
      my_set = {1, 2, 3}
  4. NumPy 배열 (1차원):
    • 1차원 배열일 경우 1차원 데이터입니다.
    • 특징: 같은 데이터 타입의 다차원 배열을 효율적으로 저장하고 빠르게 연산할 수 있습니다. 수치 연산에 매우 최적화되어 있으며, 메모리 사용량이 적습니다.
    • 용도: 대량의 수치 데이터를 처리하거나 행렬 연산, 선형대수 연산 등에 주로 사용합니다.
    • 예시:
      python
      코드 복사
      my_array = np.array([1, 2, 3, 4])
  5. 판다스 시리즈 (Pandas Series):
    • 1차원 데이터입니다. 인덱스를 가진 1차원 데이터 구조입니다.
    • 특징: 1차원 배열 구조이며, 인덱스를 통해 데이터를 빠르게 접근할 수 있습니다. 인덱스를 커스텀할 수 있어서 데이터 레이블과 값 쌍으로 사용할 수 있습니다.
    • 용도: 데이터프레임의 열을 처리할 때나, 인덱싱이 필요한 1차원 데이터를 다룰 때 사용합니다.
    • 예시:
      python
      코드 복사
      my_series = pd.Series([1, 2, 3], index=["a", "b", "c"])
  6. 문자열 (String):
    • 1차원 데이터입니다. 문자의 나열(시퀀스)이기 때문에 본질적으로 1차원입니다.
    • 예시:
      python
      코드 복사
      my_string = "Hello, World!"

2차원 데이터

2차원 데이터 구조:

  1. 판다스 데이터프레임 (Pandas DataFrame):
    • 2차원 데이터입니다. 행과 열로 구성된 테이블 형태입니다.
    • 특징: 2차원 테이블 형식의 데이터 구조로, 행과 열로 데이터를 다룹니다. 각 열은 서로 다른 데이터 타입을 가질 수 있습니다. 데이터 분석과 조작에 매우 강력합니다.
    • 용도: 표 형식의 데이터를 분석, 처리, 변형할 때 가장 많이 사용합니다.
    • 예시:
      python
      코드 복사
      my_df = pd.DataFrame({ "Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35], "City": ["Seoul", "Busan", "Incheon"] })
  2. NumPy 배열 (2차원):
    • 2차원 배열일 경우 2차원 데이터입니다. 행과 열로 구성된 배열입니다.
    • 예시:
      python
      코드 복사
      my_array = np.array([[1, 2], [3, 4], [5, 6]])
  3. 스파크 데이터프레임 (Spark DataFrame):
    • 2차원 데이터입니다. 분산 처리된 테이블 형식의 데이터 구조입니다.
    • 특징: 대규모 데이터 처리를 위한 분산 데이터프레임입니다. Apache Spark에서 사용되며, 데이터를 여러 컴퓨터에 분산하여 처리할 수 있습니다.
    • 용도: 대용량 데이터를 병렬 처리하거나 실시간 분석을 수행할 때 사용됩니다.
    • 예시:
      python
      코드 복사
      from pyspark.sql import SparkSession spark = SparkSession.builder.appName("example").getOrCreate() df = spark.read.csv("file.csv", header=True, inferSchema=True)

파일 포맷 (이 경우는 데이터 구조에 따라 달라질 수 있음):

 

  • 특징: 데이터를 구조적으로 저장하기 위한 포맷입니다. 일반적으로 텍스트 기반 포맷으로 데이터를 파일로 저장하고 교환할 때 사용합니다.
    • JSON: 키-값 쌍으로 데이터를 저장하며, 파이썬의 딕셔너리와 유사합니다.
    • CSV: 콤마로 구분된 값들을 테이블 형식으로 저장하는 포맷입니다.
  • 용도: 외부 파일에서 데이터를 읽고 쓸 때 사용합니다.

 

  • CSV (Comma Separated Values):
    • 2차원 데이터로 사용되는 경우가 많습니다. 테이블 형식의 데이터를 저장합니다.
    • 예시 (CSV 읽기):
      python
      코드 복사
      df = pd.read_csv("data.csv")
  • JSON (JavaScript Object Notation):
    • JSON은 1차원 또는 2차원 형태 모두 표현할 수 있습니다. 단순한 키-값 구조는 1차원이지만, 중첩된 구조는 2차원 이상이 될 수 있습니다.
    • 예시:
      python
      코드 복사
      import json my_dict = json.loads('{"name": "Alice", "age": 25, "city": "Seoul"}') # 1차원 구조
       
       
       

추가 Dictionary

딕셔너리의 특징:

  • 1차원 데이터: 각 키는 하나의 값에 매핑되므로, 기본적으로 1차원으로 볼 수 있습니다.
    • 예시:
      python
      코드 복사
      my_dict = {"name": "Alice", "age": 25, "city": "Seoul"}
    • 이 경우, 키(name, age, city)는 값(Alice, 25, Seoul)에 매핑되어 있습니다. 각 키가 하나의 값에 대응되므로 1차원적이라고 볼 수 있습니다.

다차원 딕셔너리:

  • 다차원 데이터: 딕셔너리의 값으로 또 다른 딕셔너리나 리스트, 또는 데이터프레임 등을 포함할 수 있습니다. 이 경우에는 2차원 이상의 구조를 표현할 수 있습니다.
    • 예시:
      python
      코드 복사
      my_dict = { "person1": {"name": "Alice", "age": 25, "city": "Seoul"}, "person2": {"name": "Bob", "age": 30, "city": "Busan"} }
    • 여기서는 각 키(person1, person2)가 또 다른 딕셔너리를 값으로 가지고 있어, 2차원 데이터 구조로 사용할 수 있습니다. 즉, 딕셔너리 안에 딕셔너리를 중첩해서 사용하면 다차원 구조를 표현할 수 있습니다.

 

3. 딕셔너리 (Dictionary)

  • 특징: 키-값 쌍(key-value pair)으로 데이터를 저장합니다. 키는 고유하며, 값을 저장하는 방식은 리스트나 튜플처럼 순서에 의존하지 않습니다.
  • 용도: 특정 키를 통해 값을 빠르게 조회하거나 저장할 때 사용합니다.
  • 예시:
    python
    코드 복사
    my_dict = {"name": "Alice", "age": 25, "city": "Seoul"}

'공부 > 파이썬' 카테고리의 다른 글

[기초] 데이터 사이언스 응용_word vocabulary  (1) 2024.10.24