import pandas as pd
## name, korean_score, english_score 컬럼이 있는 데이터 프레임 만들기
#########방법 1
names = ['aaa','bbb','ccc']
1_scores =[56,77,98]
2_scores =[75,56,89]
dict1 = {
'name' = names,
'korean_score' = 1_scores,
'english_score' = 2_scores
}
df = pd.DataFrame(dict1)
print(df)
#########방법 2
school = [ ['aaa',56,75],['bbb',77,56],['ccc',98,89] ]
df = pd.DataFrame(school, columns=['name','korean_score','english_score'])
df
print(df)
dtype |
설명 |
int64 |
정수 |
float64 |
소수 |
object |
텍스트 |
bool |
참, 거짓 |
datetime64 |
날짜,시간 |
category |
명목형 |
import pandas as pd
test = pd.read_csv('test.csv, index_col=0)
## 결과: 첫번째 컬럼이 index로 들어감
import pandas as pd
#2가지 종류의 DataFrame
school = [ ['aaa',10,76],['bbb',45,46],['ccc',57,96], ['dddd',99,99] ]
df1 = pd.DataFrame(school, columns=['name','korean_score','english_score'])
df1
names = ['aaa','bbb','ccc','ddd']
one_scores = [10,45,57,99]
two_scores = [76,46,96,99]
dict1 = {
'korean_score': one_scores,
'math_score': two_scores
}
df2 = pd.DataFrame(dict1,index=names)
#### 1개의 컬럼
df1['korean_score']
#### 2개 이상의 컬럼
df1[['korean_score','english_score']] ## 리스트로 작성
#### 범위로 컬럼 추출
df1.loc[:,'name':'english_score'] ### 컬럼의 경우는 slicing을 기존(바로위)방식으로 안되고, loc 를 써야함
#### blooean
df1.loc[:,[True,False]] ### 첫열만 출력
import pandas as pd
#2가지 종류의 DataFrame
school = [ ['aaa',10,76],['bbb',45,46],['ccc',57,96], ['dddd',99,99] ]
df1 = pd.DataFrame(school, columns=['name','korean_score','english_score'])
df1
names = ['aaa','bbb','ccc','ddd']
one_scores = [10,45,57,99]
two_scores = [76,46,96,99]
dict1 = {
'korean_score': one_scores,
'math_score': two_scores
}
df2 = pd.DataFrame(dict1,index=names)
######### 행 이름 없을때(index 화 안되어있을때, df1) 특정 행 추출
df1[0:1] # 첫행 출력
######### 행 이름 있을때(df2) 특정 행 추출
df2['bbb':'bbb'] # index bbb 출력
df2.loc[['bbb']] # index bbb 출력
######### blooean
df1.loc[[True,False,True]] ### True 행만 출력 ,
df1.loc[df1['korean_score']>50]
## df.loc[행, 열]
df1.loc['aaa','korean_score']
행,열 |
이름,위치 |
1개,2개이상, 범위 |
|
loc,iloc 없이 |
행 |
이름 |
1개 |
df.loc["행이름1"] |
|
행 |
이름 |
2개 이상 |
df.loc[["행이름1",행이름2","행이름3"]] |
|
행 |
이름 |
범위 |
df.loc["행이름1":"행이름3"] |
df["행이름1":"행이름3"] |
행 |
위치 |
1개 |
df.iloc[행번호1] |
|
행 |
위치 |
2개이상 |
df.iloc[[행번호1,행번호2,행번호3]] |
|
행 |
위치 |
범위 |
df.iloc[행번호1:행번호3] |
df[행번호1:행번호3] |
열 |
이름 |
1개 |
df.loc[:,"열이름1] |
df["열이름1"] |
열 |
이름 |
2개이상 |
df.loc[:,["열이름1","열이름2"] |
df[["열이름1","열이름2","열이름3"]] |
열 |
이름 |
범위 |
df.loc[:,"열이름1":"열이름3"] |
|
열 |
위치 |
1개 |
df.iloc[:,열번호1] |
|
열 |
위치 |
2개이상 |
df.iloc[:,[열번호1,열번호2]] |
|
열 |
위치 |
범위 |
df.iloc[:,열번호1:열번호3] |
|
df1.drop('ccc',axis='index',inplace=False)
## axis, 'index'는 행, 'colunms'는 열
## inplace, False는 원본을 안건드림, Ture 원본에서도 삭제
- DataFrame 열 이름 변경, index 열 이름추가
df1.rename(columns={'korean_score': 'math_score'}, inplace=Ture)
## index 이름
df.index.name = "name
## index 바꾸기
df.set_index('컬럼명',inplace=True)
df.info() ## 정보
df.describe() ## 통계치
df.sort_values(by='price') ## ascending=False 를 추가하면 큰것부터, inplace=True 하면 원본바꿈
df['컬럼명'].unique() ##중복제거
df['컬럼명'].value_counts() ##같은것 개수세기
df['컬럼명'].describe() ## 컬럼내 instance의 개수, 중복값, 제일 많은 instance, 제일 instance 몇개