일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 차원축소
- numpy
- 모두의 딥러닝
- 오래간만에 글쓰네
- 최소자승법
- 은준아 화이팅
- 기술통계학
- 밑바닥부터 시작하는 딥러닝2
- 군집화
- 회귀분석
- 기초통계
- 텍스트 분류
- student t분포
- 코사인 유사도
- 텐서플로2와 머신러닝으로 시작하는 자연어처리
- 자연어 처리
- 파이썬 pandas
- 히스토그램
- rnn
- 감성분석
- 구글 BERT의 정석
- 밑바닥부터 시작하는 딥러닝
- Django
- word2vec
- 결정계수
- 다층 퍼셉트론
- 머신러닝
- Pandas
- 가설검정
- F분포
- Today
- Total
데이터 한 그릇
판다스 시작 본문
판다스 기본 기능들
data = pd.read_csv('C:\study\workspace_python\pdsample/num.txt',header=None)
판다스 데이터 불러오기
header를 설정하지 않고 txt파일을 읽어오게 되면 txt 파일의 첫 번째 줄이 header가 되어서 나타남.
따라서 header 자동 설정을 풀어줘야 하는데, 파라미터 header의 매개변수에 None 인자를 넣으면 됨.
#칼럼 열
print(data[0])
print(type(data[0]))
#행
print(data.iloc[0])
type(data.iloc[0])
열과 행 모두 Series를 반환한다.
이를 통해 데이터 프레임은 여러 Series의 묶음임을 알 수 있다.
data = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")
인터넷에 있는 데이터를 긁어올 때 read_csv로 긁어올 수 있다.
data.info()
데이터 프레임에 대한 정보를 얻을 수 있다.
(데이터의 개수, 칼럼의 개수, 데이터 타입 정보, null 값의 개수 등을 알 수 있다.)
data.head()
data.tail()
data.head(10)
data.tail(10)
데이터 앞의 5개 정보를 보려면 head() 사용
뒤 5개를 보려면 tail() 사용
head와 tail 안에 인자를 설정하면 보이는 데이터 개수를 설정할 수 있다.
data.sample()
data.sample(10)
데이터를 랜덤으로 하여 보여주는 기능이 있다. sample() 도 마찬가지로 인자 값을 설정하면 랜덤으로 보이는 데이터의 개수를 설정할 수 있다.
data.values #데이터만 가져온다.
data.index #인덱스를 가져온다.
data.columns #데이터의 컬럼들을 가져온다.
데이터 프레임의 value와 index 그리고 칼럼들을 확인할 수 있다.
본격 데이터 프레임 인덱싱
data.iloc[3]
data.iloc[0:5] #Slicing
data.iloc[[0,3,5]] #Fancy
data.iloc[0,4] #comma
data.iloc[:,[0,3,5]] #Slicing & Fancy
comma를 사용하기 전에는 행만 가져옴.
comma를 사용하여 행과 열을 특정지어서 가져오기 가능 (이때 ':' 사용 가능)
*iloc는 인덱스를 이용해서 데이터 값을 가져오는 것!
data['tip'] #열 1개
data[['tip','day']] #열 여러 개는 안에 리스트로 받아서
열을 한 개 가져올 때는 이름만 적는다. -> Series로 반환
열을 여러 개 가져올 때는 리스트로 받는다. -> df로 반환
data['tip']
data[['tip']] #Fancy 가능
Fancy로 인덱싱을 할 시 칼럼을 하나만 집어 넣어도 데이터 프레임으로 리턴한다.
data.loc[:,'tip'] #comma
data.loc[:,'tip':'time'] #slicing
data.loc[:,['tip','day','time']] #fancy
특정 행과 특정 열을 가져올 때,
loc는 열의 이름을 통해서 가져올 수 있게 해준다.
at
data.at[0,'tip'] # == data.loc[0,'tip']
하나의 값만 가져오는 게 가능하다.
slicing 사용이 불가능하다.
iat
data.iat[0,1]
인덱스로만 가져온다.
그러나 slicing 사용하지 못한다.
boolean indexing
data.tip>5
data['tip'] >= 5
True/False의 결과값을 가지는 Series를 가져온다.
data[data['tip'] >= 5]
data[data.tip>5]
True/False를 가지고 있는 시리즈를 data에 넣으면 True인 값만 반환한다.
전체 데이터 프레임을 반환해줌
data[data['tip']>5]['tip']
data[data['tip']>5].sex
data[data['tip']>=5][['tip','day']]
어떤 조건하의 데이터 프레임 중에서 특정 열을 추출하고 싶을 때 위의 코드처럼 사용
data[data['tip']>=5].loc[:,'tip':'size']
data[data['tip']>5].iloc[:,1:5]
loc,iloc와 혼합해서 사용할 수 있음
data[(data['day']=="Sun") | (data['day'] == "Sat")][['tip','day']]
a['day'].unique()
조건에 맞았는지 맞지 않았는지 unique로 확인하기
rename()
data.size
size 컬럼 데이터를 가져오고 싶었는데, python size 함수가 이미 존재한다.
size 함수는 요소의 개수를 세는 함수이므로 컬럼 데이터를 가져오는 게 아니라 요소의 개수를 가져온다.
따라서 이름을 바꿔줘야 한다.
#mapper는 dic같은 것
data.rename(mapper={'size': 'size_'}, axis = 1, inplace = True)
#columns 매개변수도 같은 기능
data.rename(columns={'size': 'size_'}, axis = 1, inplace = True)
shift + tab을 누르면 매개변수에 mapper가 존재한다.
mapper는 dic 형식으로 사용한다.
그 이외에 axis, inplace 매개변수 존재.
category
data['sex']= data['sex'].astype('category')
data.info()
category 데이터 타입으로 sex를 바꾸면, info를 통해서 확인하면 object 타입이었던 것이 category로 바뀌어 있는 것을 확인할 수 있다.
데이터 타입을 바꿀 때는 astype(<바꿀 데이터 타입>)을 이용한다.
'Python > 판다스(pandas)' 카테고리의 다른 글
판다스 시작 2 (0) | 2021.06.08 |
---|