Pandas: DataFrame 작업

3431 단어
  • Theodore Petrou의 (2017 Packt Publishing)과 pandas의 공식 수첩(pandas의 공식 문서를 너무 잘 썼다)
  • 을 강추했다

    DataFrame 구축

  • df = pd.DataFrame(data, index=[], columns=[]): data는 2차원수조
  • 이다.
  • 다중 index를 구축한 df는 다음과 같다.
  • >>> tuples = [('a', 'v1'), ('a', 'v2'), ('b', 'v1'), ('b', 'v2')]
    >>> index = pd.MultiIndex.from_tuples(tuples)
    >>> columns = ['c1', 'c2']
    >>> values = np.arange(8).reshape(4, 2)
    >>> df = pd.DataFrame(values, columns=columns, index=index)
    >>> df
            c1  c2
    a   v1   0   1
        v2   2   3
    b   v1   4   5
        v2   6   7
    
    

    다중 열 선택

  • df[col_names_list]: 열 이름 목록을 통해 여러 열을 직접 선택
  • df.select_dtypes(include=['int']): 데이터 형식이 int인 열을 선택
  • df.filter(like='str', regex='re'): 이 방법은 모든columnnames만 검사하고 정확한 데이터는 검사하지 않습니다
  • df[new_col_order_list]: df의 열 조직 순서를 정할 때 원하는 열 이름 순서로 index
  • (df + .00501)// .01: df의 데이터를 모두 1자리 소수로 반올림
  • df.add(.00501).floordiv(.01): 위와 동일
  • 주의: 아래와 같다
  • In  [1]: .045 + .005
    Out [1]: 0.049999999999999996
    
    

    그래서 한 소수로 할 때 0.00001을 더 넣었어요.
  • df_1 == df_2: 같은 shape의 df를 되돌려줍니다. 값은 모두 bool 형식이고 대응하는 데이터가 같은지 확인
  • df.sort_values() :

  • df.loc[] 및 df.iloc[]사용법 집합


    1. df.loc[] 자세히 보기


    참고: 아래i1i2는 index 를 나타냅니다.label, c1c2columnname
  • df.loc['i1']: 줄의 데이터를 포함하는 Series행을 반환
  • i1: 한 줄df.loc[['i1', 'i2']]을 반환하고 dfi1 두 줄의 데이터를 포함
  • i2: 해당 위치의 데이터를 반환
  • df.loc['i1', 'c1']: 줄과 열을 포함하는 df.loc['i1':'12', 'c1':'c2']를 되돌려줍니다
  • df: df.loc[df['c1'] > 1] 열에 1보다 큰 값을 포함하는 모든 줄을 되돌려줍니다 df
  • c1: 되돌아오는 df.loc[df['c1'] > 1, ['c2']]df에 포함된 df
  • c2: df.loc[lambda df: df['c1'] == 1] 열에 1과 같은 값을 포함하는 모든 줄을 되돌려줍니다 df
  • c1: df.loc[['i1', 'i2'], ['c1']] = 1에서 해당 위치의 데이터를 1
  • 로 변경
  • df: 해당 행의 데이터를 모두 1로 변경
  • df.loc['i1'] = 1: 대응하는 열의 데이터를 모두 1로 변경
  • df.loc[:, 'c1'] = 1: 열이 1보다 큰 행에 대한 모든 데이터를 0
  • 으로 변경
  • df.loc[df['c1'] > 1] = 0: 1-9 행의 데이터 반환
  • 다중 Index의 df.loc[1:9]에 대한 조작은 df로 마지막에 보면 된다
  • 2. help(pd.DataFrame.loc) 상세 정보

  • iloc (integer-location)
  • df.iloc[]와 같은 기능은 완전히 숫자를 바탕으로 인덱스할 뿐이다. 예를 들어 df.loc[]df.iloc[1:3, 1:3]에 해당하고 다른 것은 유사
  • 에 해당한다.
  • df.loc['i1':'i1', 'c1':'c3']도 완전히 디지털 기반 인덱싱
  • df.loc[]: 해당 위치의 값을 반환합니다. 'df.at['i1','c1'] = 1`: 대응하는 위치의 값을 1로 설정

    Boolean Selection


    df.at['i1', 'c1'] :

    좋은 웹페이지 즐겨찾기