DataFrame의 기본
https://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe
pandas에서는 2차원 배열을 다룰수 있는 데이터 구조를 DataFrame이라고 합니다.
두가지 용어가 있습니다. index (row labels), columns (column labels)
이해를 위해서는 예제가 필요합니다.
예제를 시작하기전에 np, pd 정의 입니다.
지금까지는 DataFrame을 생성하는 방법에 대해서 간단하게 살펴보았습니다.
Selecting column in pandas dataframe
입력 데이터는 아래와 같이 들어있을때 pd.read_csv 함수 호출로 DetaFrame 데이터가 만들어 집니다.
입력 데이터 train.tsv 파일 내용
0 1 지역 3 4 0.30789676210454797 0.3160718715457761 광주 0.618074061962662 부산 0.4779143261004096 0.7640950473377978 인천 0.7554662967547567 인천 0.46356805076582885 0.5837447431729355 대전 0.793675978965779 광주 0.5695109222857196 0.05089301078346342 인천 0.9556152127770076 부산 0.04493729261707624 0.14316706161067427 경기 0.3853064558624778 울산 0.4211392967613088 0.4223696769241083 울산 0.5668579921124862 광주 0.6968309725237914 0.9771633054896907 서울 0.8357267917293922 경기 0.11353740126056755 0.7601654905557846 대전 0.743158407293178 부산 0.22370034270270966 0.3115915771469119 대전 0.11848968372403645 부산 0.137646137601257 0.600286886461799 광주 0.7007352606121582 강원 0.031428666050948184 0.39108944068098905 대전 0.8733145643417124 강원 0.9964849451141898 0.1515641318053479 인천 0.5335673749065628 인천 0.22542471556473298 0.8561772376533481 서울 0.9362096685200896 울산 0.4686621433360696 0.17537990374522128 대구 0.3499523151304561 울산 0.046060811241397714 0.8299155100569963 경기 0.21535901604117658 경기 0.1899909553960777 0.21936448957471155 인천 0.6575452140509177 경기 0.41758513381425333 0.42277109702047366 서울 0.8529515809615816 부산 0.3197992908993763 0.13481439248189842 강원 0.4037015504523124 대구 0.0562629654450455 0.551939153390536 인천 0.9260164254116474 세종 0.587953265713976 0.6413981811587487 대구 0.023584307830762707 대전
DataFrame 구조에서 특정 Colmum을 선택 하는 방법입니다. 다음과 같이 사용합니다. dataframe[[label_index1,label_index2,...]]
Column Select 소스
1 2 3 4 5 6 7 8 9 | import pandas as pd dataset = pd.read_csv("train.tsv", delimiter='\t', header=0) print("row data") print(dataset) print("select data:dataset[['1','3','지역']]") print(dataset[['1','3','지역']]) |
결과
row data 0 1 지역 3 4 0 0.307897 0.316072 광주 0.618074 부산 1 0.477914 0.764095 인천 0.755466 인천 2 0.463568 0.583745 대전 0.793676 광주 3 0.569511 0.050893 인천 0.955615 부산 4 0.044937 0.143167 경기 0.385306 울산 5 0.421139 0.422370 울산 0.566858 광주 6 0.696831 0.977163 서울 0.835727 경기 7 0.113537 0.760165 대전 0.743158 부산 8 0.223700 0.311592 대전 0.118490 부산 9 0.137646 0.600287 광주 0.700735 강원 10 0.031429 0.391089 대전 0.873315 강원 11 0.996485 0.151564 인천 0.533567 인천 12 0.225425 0.856177 서울 0.936210 울산 13 0.468662 0.175380 대구 0.349952 울산 14 0.046061 0.829916 경기 0.215359 경기 15 0.189991 0.219364 인천 0.657545 경기 16 0.417585 0.422771 서울 0.852952 부산 17 0.319799 0.134814 강원 0.403702 대구 18 0.056263 0.551939 인천 0.926016 세종 19 0.587953 0.641398 대구 0.023584 대전 select data:dataset[['1','3','지역']] 1 3 지역 0 0.316072 0.618074 광주 1 0.764095 0.755466 인천 2 0.583745 0.793676 대전 3 0.050893 0.955615 인천 4 0.143167 0.385306 경기 5 0.422370 0.566858 울산 6 0.977163 0.835727 서울 7 0.760165 0.743158 대전 8 0.311592 0.118490 대전 9 0.600287 0.700735 광주 10 0.391089 0.873315 대전 11 0.151564 0.533567 인천 12 0.856177 0.936210 서울 13 0.175380 0.349952 대구 14 0.829916 0.215359 경기 15 0.219364 0.657545 인천 16 0.422771 0.852952 서울 17 0.134814 0.403702 강원 18 0.551939 0.926016 인천 19 0.641398 0.023584 대구
결론
dataframe[[label_index1,label_index2,...]]
선택된 컬럼들로부터 컬럼 추가 삭제 값 변경 하기
예제를 위해 DataFrame 만듭니다.
특정 컬럼 선택은 아래와 같이 됩니다. 여기에서는 'one'이라는 컬럼을 선택하였습니다.
값을 입력하면 컬럼 통째로 값이 변경 됩니다.
삭제는 del 을 이용합니다. pop도 삭제하는 곳에 사용 가능합니다.
추가는 빈컬럼에 원하는 내용을 대입하면 됩니다.
NaN이 있는경우 True, 없는경우 False 컬럼 추가하기, isnull 이용
df[컬럼이름]=df['one'].isnull()
>>> df['1']=df['one'].isnull() >>> df one two three flag 1 a 1.0 1.0 1.0 False False b 2.0 2.0 4.0 False False c 3.0 3.0 9.0 True False d NaN 4.0 NaN False True
True인경우 1, False 인경우 컬럼 추가하기, map이용
df[컬럼이름]=df[컬럼이름].map({True:1,False:0})
>>> df['1']=df['1'].map({True:1,False:0}) >>> df one two three flag 1 a 1.0 1.0 1.0 False 0 b 2.0 2.0 4.0 False 0 c 3.0 3.0 9.0 True 0 d NaN 4.0 NaN False 1
Selecting row in pandas dataframe
row 선택하는 방법에 대해서 알아봅시다. row는 dataframe[시작인덱스:끝인덱스] 로 표현합니다.
소스
import pandas as pd dataset = pd.read_csv("train.tsv", delimiter='\t', header=0) selected = dataset[['1','3']] print(selected[1:4]) print(selected[10:18])
결과
1 3 1 0.764095 0.755466 2 0.583745 0.793676 3 0.050893 0.955615 1 3 10 0.391089 0.873315 11 0.151564 0.533567 12 0.856177 0.936210 13 0.175380 0.349952 14 0.829916 0.215359 15 0.219364 0.657545 16 0.422771 0.852952 17 0.134814 0.403702
기타 몇가지 선택방법이 있습니다. 결과값이 Series 로 된 부분은 한 줄로 넘어오는 부분입니다.
The basics of indexing are as follows:
Operation | Syntax | Result |
---|---|---|
Select column | df[col] | Series |
Select row by label | df.loc[label] | Series |
Select row by integer location | df.iloc[loc] | Series |
Slice rows | df[5:10] | DataFrame |
Select rows by boolean vector | df[bool_vec] | DataFrame |
댓글 없음:
댓글 쓰기