ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [21.02.22] pandas와 친해지기 첫째 날
    AI/study log 2021. 8. 30. 00:03
    728x90

    참고: pandas 공식 홈페이지 10 minutes to pandas
    데이터사이언스 스쿨 pandas

    1. Pandas 클래스

    1-1. Series 클래스 : numpy의 '1차원 배열'과 유사, but index 붙일 수 있음!
    Series=값(values)+인덱스(index)
    -> 시리즈 생성 시에 value값과 인덱스 값 모두 넣어줘야 함!!
    s=pd.Series([1,2,3,4],index=["a","b","c","d"])
    +) 만약 인덱스 값 지정 x? -> 0부터 시작! ex) pd.Series(range(10,24))
    ->데이터 접근

    • 인덱스 접근은 .index로!
    • 값 접근은 .values로!
    이름도 붙일 수 있음!
    • 시리즈 데이터 이름 붙이는 건 .name
    • 인덱스 이름 붙이는 건 .index.name

    ->인덱싱

    • 배열 인덱싱 (numpy에서 가능했던!)
    • 인덱스 라벨을 이용한 슬라이싱 ex) s["a":"c"]와 같은 슬라이싱 가능 => 딕셔너리 자료형과 유사

    -> "딕셔너리 자료형"으로 Series 만들 수 있다!
    s2=pd.Series({'서울':[~~~],'부산':[~~~],'대구':[~~~]})

    +) 순서도 인덱스 리스트를 통해 지정 가능함
    s2=pd.Series({'서울':[~~~],'부산':[~~~],'대구':[~~~]},index=['부산','대구','서울'])
    +) 딕셔너리처럼 데이터 갱신 또는 추가 가능!

    • 갱신: s["부산"]=25
    • 추가: s["울산"]=10
    • 삭제: del s["서울"]

    1-2. DataFrame 클래스 : "열 시리즈의 딕셔너리"라고 생각하면 좋음!

    * Series와의 차이점: Series는 1차원 벡터 데이터에 행 방향 index을 븥인 것이지만, DataFrame은 '2차원' 행렬 데이터에 index 붙인 것! (2차원이라서 행 데이터의 이름인 행 인덱스와, 열 데이터의 이름인 열 인덱스를 붙일 수 있음!)
    ->DataFrame 생성

    1. data 준비-> 딕셔너리 (각각의 열 이름[키]+각각의 열들의 값을 가진 리스트[값])
    2. columns 준비-> 열 이름 리스트
    3. index 준비 -> 행 이름 리스트
    4. df=pd.DataFrame(data,index=[~~~],columns=[~~~])

    -> DataFrame 데이터 접근
    1. data 값 접근 : df.values
    2. 행 값 접근 : df.index
      -df.index.name
    3. 열 값 접근 : df.columns
      -df.columns.name

    -> DataFrame 열 데이터 갱신, 추가, 삭제
    • 갱신: df["a"]=df["a"]*10
    • 추가: df["g"]=df["a"]-df["b"]
    • 삭제: def df["a"]

    -> DataFrame 인덱싱
    (1) 열 인덱싱

    • 열 인덱싱
      • 1개인 경우:
        1) Series 반환 -> df["a"]
        2) DataFrame 반환 -> df[["a"]]
      • 여러 개인 경우: DataFrame 반환 -> df[["a","b"]]
    • 행 인덱싱 -> "무조건 슬라이싱"
      • 숫자 인덱싱 df[1:3],df[:1]
      • 문자 인덱싱 df["a":"d"]
    • 개별 데이터 인덱싱 : df[열][행]

    2. 데이터 입출력

    -csv, html, excel, json 등 지원
    1) csv 파일 입력

    • 기본: pd.read_csv(' .csv')
    • 열 인덱스 지정: pd.read_csv(' .csv',names=[~~~])
    • 특정 열을 행 인덱스로 지정하고 싶을 때: pd.read_csv(' .csv',index_col=" ")
    • 행 건너뛰기: pd.read_csv(' .csv',skiprows=[0,2])
    • 특정 값을 NaN으로 바꾸기: pd.read_csv(' .csv',na_values=[])
    +) 일부만 보기 .head() / .tail(7)

    728x90
Designed by Tistory.