개발공부

[Python] Pandas Dataframe 생성, csv읽기, 저장하기, 데이터 액세스 본문

Python/Pandas

[Python] Pandas Dataframe 생성, csv읽기, 저장하기, 데이터 액세스

mscha 2022. 5. 2. 11:14

Pandas Dataframe 생성

>>> import pandas as pd

# 딕셔너리 형태로 만들기
>>> items = {'Bob' : pd.Series(data = [245, 25, 55], index = ['bike', 'pants', 'watch']),
         'Alice' : pd.Series(data = [40, 110, 500, 45], index = ['book', 'glasses', 'bike', 'pants'])}

>>> df = pd.DataFrame(data= items)
>>> df

왼쪽 진한 글자가 인덱스

위쪽 진한 글자는 컬럼
안에 있는 데이터는 밸류

NaN 은 해당 항목에 값이 없음을 뜻한다.  (Not a Number) (numpy.nan 과 같다.)

>>> df.index
Index(['bike', 'book', 'glasses', 'pants', 'watch'], dtype='object')
>>> df.columns
Index(['Bob', 'Alice'], dtype='object')
>>> df.values
array([[245., 500.],
       [ nan,  40.],
       [ nan, 110.],
       [ 25.,  45.],
       [ 55.,  nan]])
>>> df.ndim
2
>>> df.shape
(5, 2)
>>> df.size
10

 

csv읽기, 저장하기

 csv 로 처리하는 방법
 csv (comma separated values) => 데이터는 콤마로 구분한다.

 csv 의 규칙! 맨 위의 행은, 컬럼명을 적어준다.

 

아래와 같은 csv파일을 만들었다.

아래와 같이 읽어 올 수 있다.

>>> df = pd.read_csv('my_test.csv')
>>> df

저장을 위해서는 to_csv('파일명')을 하면 된다.

df.to_csv('my_test2.csv')

 

데이터 액세스

items2 = [{'bikes': 20, 'pants': 30, 'watches': 35}, 
          {'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]

df = pd.DataFrame(data= items2, index = ['store 1', 'store 2'])
df

#### 중요! 데이터 프레임에서, 데이터를 억세스하는 방법

# 데이터 억세스 기호???? 대괄호 !

# 1. 컬럼 데이터를 억세스(가져오는) 방법. 변수명 옆에 바로 대괄호
df['bikes']

df['pants']

# bikes 컬럼과 glasses 컬럼을 가져오기
df[['bikes', 'glasses']]

### 행과 열의 정보로, 데이터를 가져오는 방법

## 2. 사람용 인덱스와 컬럼명으로 데이터 억세스(가져오는) 방법
## .loc[ 인덱스, 컬럼명]

# 스토어 1의 데이터를 가져오기
df

df.loc['store 1' , ]

# 스토어 2에서, 바이크와 와치 데이터를 가져오기
df

df.loc['store 2', ['bikes', 'watches']]

# 스토어 2에서, 팬츠부터 글래시스까지 데이터를 가져오기
df

df.loc['store 2', 'pants':'glasses']

### 행과 열의 정보로, 데이터를 가져오는 방법

## 3. 컴퓨터가 자동으로 매기는 인덱스로, 행과 열을 가져오는 방법
# .iloc[행, 열]

# 스토어 1의 팬츠 데이터를 가져오기
df

>>> df.iloc[0, 1]
30
# 스토어 1의 바이크와 와치 데이터를 가져오기
df.iloc[0, [0, 2]]

# 데이터 값 변경!

# 스토어2의 시계 데이터를 20으로 변경하기
df

df.loc['store 2', 'watches'] = 20
df