본문 바로가기

자바, 파이썬

[파이썬] 판다스 - 테이블 쉽게 다루기


import pandas as pd

 

시리즈

myvar = pd.Series(dict)

print(myvar[0]) 또는 print(myvar["y"])

 

데이터 프레임

myvar = pd.DataFrame(data)

print(df.loc[0]) 0번째 열의 모든 키:값을 반환

print(df.loc[[0, 1]])

pd.DataFrame(data, index = ["day1", "day2", "day3"]) 기본 0,1,2 대신 "day1", "day2", "day3"

print(df.loc["day2"])

 

데이터 베이스 읽기 -> 데이터 프레임

df = pd.read_csv('data.csv')

pd.options.display.max_rows = 9999

print(df)

 

JSON 읽기 -> 데이터 프레임

df = pd.read_json('data.json')
print(df.to_string()) 

 

데이터 읽기

print(df)

df.head() # 5개 행

df.head(10)

df.tail()


데이터 청소

  • 빈 셀
  • 잘못된 형식의 데이터
  • 잘못된 데이터
  • 중복

빈 셀 - 행 제거

new_df = df.dropna()

df.dropna(inplace = True)

df.fillna(10, inplace = True)

df["a"].fillna(10, inplace = True)

 

잘못된 형식의 데이터 - 올바른 형식으로 변환, 행 제거

날짜 열의 경우 df['Date'] = pd.to_datetime(df['Date'])

df.dropna(subset=['Date'], inplace = True)

 

잘못된 데이터 - 값 바꾸기, 행 제거

df.loc[n번째 행, 열 이름]

df.loc[7, 'Duration'] = 45

for x in df.index:
  if df.loc[x, "Duration"] > 120:
    df.drop(x, inplace = True)

 

중복 - 중복 탐지, 중복 제거

print(df.duplicated())

df.drop_duplicates(inplace = True)


데이터 간의 관계

df.corr() 숫자 값의 열들 간의 관계를 계산 -! ~ 1 0.6이상, -0.6이하는 강한 상관 관계를 가지고 있다

 


Matplotlib과의 연계

그래프

df = pd.read_csv('data.csv')
df.plot()
plt.show()

 

산포도

df = pd.read_csv('data.csv')
df.plot(kind = 'scatter', x = 'Duration', y = 'Calories')
plt.show()

 

히스토그램

df["Duration"].plot(kind = 'hist')