판다스 column, row

1. 인덱싱, 슬라이싱을 이용한 데이터 추출

1) row, column명으로 가져오기

"""Row 1개"""
# df.loc['row']

print(df.loc['no.2'])
print(type(df.loc['no.2']))
----------------------------------
Name       Paul Labile Pogba
Country               France
Team       Manchester United
Name: no.2, dtype: object
<class 'pandas.core.series.Series'>
"""Column 1개"""
# df.loc[:,'col']
# df['col']

print(df.loc[:, 'Name'])
print(type(df.loc[:, 'Name']))
---------------------------------
no.1        Steven Gerrard
no.2     Paul Labile Pogba
no.3       Zinedine Zidane
no.4    Zlatan Ibrahimović
no.5     Cristiano Ronaldo
no.6        Patrick Vieira
Name: Name, dtype: object
<class 'pandas.core.series.Series'>
"""여러개의 Row"""
# df.loc[['row1','row2','row4']]

df.loc[['no.1', 'no.3', 'no.4']]

"""여러개의 Column"""
# df.loc[:,['col1','col4']]
# df[['col1','col4']]

df.loc[:, ['Name', 'Team']]

"""Row slicing"""
# df.loc['row1':'row4']
# df['row1':'row4']

df.loc['no.3':'no.6']

"""Column slicing"""
# df.loc[:,'col1':'col3']

df.loc[:, 'Country':'Team']

# slicing, slicing
df.loc['no.2':'no.5', 'Name':'Team']

# slicing, indexing
df.loc['no,2':'no.5', ['Name', 'Team']]

# indexing, slicing
df.loc[['no.2', 'no.4'], 'Name':'Team']

# indexing, indexing
df.loc[['no.1', 'no.3', 'no.5'], ['Name', 'Team']]

2) 위치(번호)로 가져오기

"""Row 1개"""
# df.iloc[숫자]
# df[숫자]

"""Column 1개"""
# df.iloc[:,숫자]

"""여러개의 Row"""
# df.iloc[[숫자, 숫자]]
# df[[숫자, 숫자]]

"""여러개의 Column"""
# df.loc[:,[숫자, 숫자]]

"""Row slicing"""
# df.iloc[숫자:숫자]
# df[숫자:숫자]

"""Column slicing"""
# df.iloc[:, 숫자:숫자]

3) 조건식으로 가져오기

"""특정 Column조건에 맞는 샘플(row)들"""
# condition = df['col'] > 5
# condition = df['col'] == '대한민국'

# new_df = df[condition]

condition_1 = df['Country'] == 'France'
condition_2 = df['Team'] == 'Manchester United'
condition_3 = condition_1 & condition_2

df[condition_3]

🔔 한 개의 row, column을 DataFrame으로 가져오고 싶은 경우

# Series
df.loc['row1']

# DataFrame
df.loc[['row1']]

2. row, column 삭제하기

labels는 지우고자 하는 항목의 index명 또는 column명입니다. 단일 값 또는 list, ndarray와 같은 배열을 값으로 줄 수 있습니다. axislabels에서 선택한 값이 index명이면 ‘axis=index’ 또는 ‘axis=0’, column명이면 ‘axis=columns’ 또는 ‘axis=1’입니다. index, columns 인자는 앞의 두 인자를 하나로 받는 역할을 합니다. inplace는 DataFrame의 값을 바꿀 것인지 그대로 둘 것인지를 나타냅니다. ‘inplace=True’로 할 경우 DataFrame의 값이 바뀌게 됩니다. 예시를 살펴보겠습니다.

""""샘플 한 개 삭제"""

# labels와, axis에 값을 주는 방법
df.drop('no.1', axis='index', inplace=True)
df.drop('no.1', axis=0, inplace=True)

# index인자에만 값을 주는 방법, 결과는 동일
df.drop(index='no.1', inplace=True)

"""샘플 몇 개 삭제"""

df.drop(['no.2', 'no.5'], axis='index', inplace=True)

df.drop(index=['no.2', 'no.5'], inplace=True)
"""샘플 슬라이싱으로 삭제"""

df.drop(df.index[1:3], axis='index', inplace=True)

"""Column 한 개 삭제"""

# del 내장 함수 사용 -> inplace=True
del df['Name']

df.drop('Name', axis='columns', inplace=True)
df.drop('Name', axis=1, inplace=True)
df.drop(columns='Name', inplace=True)

"""Column 몇 개 삭제"""

df.drop(['Name','Team'], axis=1, inplace=True)
df.drop(columns=['Name', 'Team'], inplace=True)
"""Column 슬라이싱으로 삭제"""

df.drop(df.columns[1:3], axis='columns', inplace=True)
df.drop(columns=df.columns[1:3], inplace=True)

3. index, column명 바꾸기

1) index, column명 확인하기

# index명 확인하기
df.index
-------------------------------------
Index(['no.1', 'no.2', 'no.3', 'no.4', 'no.5', 'no.6'], dtype='object')

# column명 확인하기
df.columns
-------------------------------------
Index(['Name', 'Country', 'Team'], dtype='object')

2) index, column명 바꾸기

# index명 바꾸기
# df.rename(index={'old_index': 'new_index'}, inplace=True)

df.rename(index={'no.1': 'no.9999', 'no.5':'no.1234'}, inplace=False)

# column명 바꾸기
# df.rename(columns={'old_column': 'new_column'}, inplace=True)

df.rename(columns={'Name': '선수명', 'Country':'국적', 'Team':'팀'}, inplace=False)

4. index설정하기

1) 특정 column index로 가져오기

df.set_index('Name', inplace=True)

df.columns
-------------------------------------------------------------------
Index(['Country', 'Team'], dtype='object')

df.index
---------------------------------------------------------------------
Index(['Steven Gerrard', 'Paul Labile Pogba', 'Zinedine Zidane',
       'Zlatan Ibrahimović', 'Cristiano Ronaldo', 'Patrick Vieira'],
      dtype='object', name='Name')

2) index명 정하기

df.index.name = '등록 번호'

df.columns
-------------------------------------
Index(['Name', 'Country', 'Team'], dtype='object')

df.index
-------------------------------------
Index(['no.1', 'no.2', 'no.3', 'no.4', 'no.5', 'no.6'], dtype='object', name='등록 번호')

Tags:

Categories:

Updated: