In [1]:
from IPython.display import display, HTML
display(HTML("<style>.container { width:90% !important; }</style>"))
# 코드 입력창의 너비를 조정하는 코드입니다.
판다스 데이터프레임의 데이터 변경, 추가, 삭제¶
In [2]:
import pandas as pd
In [3]:
items2 = [{'bikes': 20, 'pants': 30, 'watches': 35},
{'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
In [4]:
df = pd.DataFrame(data= items2, index= ['store 1', 'store 2'])
데이터 변경¶
In [5]:
df
Out[5]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN |
store 2 | 15 | 5 | 10 | 50.0 |
In [6]:
# 스토어 2의 watches 데이터를 20으로 변경하시오.
df.loc['store 2', 'watches'] = 20
In [7]:
df
Out[7]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN |
store 2 | 15 | 5 | 20 | 50.0 |
데이터 추가¶
새로운 컬럼 만들기¶
In [8]:
df['shirts'] = [15, 2]
In [9]:
df
Out[9]:
bikes | pants | watches | glasses | shirts | |
---|---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN | 15 |
store 2 | 15 | 5 | 20 | 50.0 | 2 |
In [10]:
# suits 라는 컬럼을 만들되,
# pants 컬럼의 값과, shirts 컬럼의 값을 더해서 만드세요
In [11]:
df['suits'] = df['pants'] + df['shirts']
In [12]:
df
Out[12]:
bikes | pants | watches | glasses | shirts | suits | |
---|---|---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN | 15 | 45 |
store 2 | 15 | 5 | 20 | 50.0 | 2 | 7 |
행을 이어붙이기¶
In [13]:
df
Out[13]:
bikes | pants | watches | glasses | shirts | suits | |
---|---|---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN | 15 | 45 |
store 2 | 15 | 5 | 20 | 50.0 | 2 | 7 |
In [14]:
new_item = [{'bikes': 20, 'pants': 30, 'watches': 35, 'glasses': 4}]
In [15]:
new_store = pd.DataFrame(data= new_item, index= ['store 3'])
In [16]:
new_store
Out[16]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store 3 | 20 | 30 | 35 | 4 |
In [17]:
df = df.append(new_store)
C:\Users\5-25\AppData\Local\Temp\ipykernel_10024\2676567635.py:1: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead. df = df.append(new_store)
append()는 잘 쓰이지 않고 pandas.concat()을 주로 사용한다고 한다.
concat()에 대해서는 추후에 다뤄보겠다.
In [18]:
df
Out[18]:
bikes | pants | watches | glasses | shirts | suits | |
---|---|---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN | 15.0 | 45.0 |
store 2 | 15 | 5 | 20 | 50.0 | 2.0 | 7.0 |
store 3 | 20 | 30 | 35 | 4.0 | NaN | NaN |
데이터 삭제¶
데이터프레임의 데이터 삭제는 행 삭제 or 열 삭제를 의미한다.
drop() 함수를 사용하고, axis만 설정해주면 된다.
- axis=0 : 행
- axis=1 : 열
In [19]:
df
Out[19]:
bikes | pants | watches | glasses | shirts | suits | |
---|---|---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN | 15.0 | 45.0 |
store 2 | 15 | 5 | 20 | 50.0 | 2.0 | 7.0 |
store 3 | 20 | 30 | 35 | 4.0 | NaN | NaN |
In [20]:
# store 2 삭제
df.drop('store 2', axis= 0)
Out[20]:
bikes | pants | watches | glasses | shirts | suits | |
---|---|---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN | 15.0 | 45.0 |
store 3 | 20 | 30 | 35 | 4.0 | NaN | NaN |
결과를 변수에 저장하려면 = 기호를 쓰거나,
drop 함수 내에 파라미터 inplace=True를 쓰자
In [21]:
# glasses 컬럼 삭제
df.drop('glasses', axis= 1)
Out[21]:
bikes | pants | watches | shirts | suits | |
---|---|---|---|---|---|
store 1 | 20 | 30 | 35 | 15.0 | 45.0 |
store 2 | 15 | 5 | 20 | 2.0 | 7.0 |
store 3 | 20 | 30 | 35 | NaN | NaN |
In [22]:
# pants 컬럼과 suits 컬럼을 삭제
df.drop(['pants', 'suits'], axis=1)
Out[22]:
bikes | watches | glasses | shirts | |
---|---|---|---|---|
store 1 | 20 | 35 | NaN | 15.0 |
store 2 | 15 | 20 | 50.0 | 2.0 |
store 3 | 20 | 35 | 4.0 | NaN |
'Python > Pandas' 카테고리의 다른 글
Pandas 활용(6) - 범주로 묶어 집계하기 groupby, agg (0) | 2022.11.27 |
---|---|
Pandas 활용(5) - 결측값(NaN) 처리 (0) | 2022.11.27 |
Pandas 활용(4) - 인덱스명, 컬럼명 변경 (0) | 2022.11.27 |
Pandas 활용(2) - 데이터프레임의 Indexing, Slicing (0) | 2022.11.25 |
Pandas 활용 (1) - Series/DataFrame 생성, read_csv, to_csv (0) | 2022.11.24 |