728x90
반응형
시리즈(Series)
- 데이터가 순차적으로 나열된 1차원 배열 형태
- 딕셔터리로 Series 생성시 -> key 는 시리즈의 인덱스와 대응된다.
- 리스트로 Series 생성시 -> 리스트의 인덱스가 시리즈의 인덱스로 대응된다.
dict_data = {'a':1,'b':2,'c':3}
series_data=pd.Series(dict_data)
a 1
b 2
c 3
list_data = ['2022-10-11',3.14,'ABC',100,True]
series_data1=pd.Series(list_data)
0 2022-10-11
1 3.14
2 ABC
3 100
4 True
데이터프레임(DataFrame)
- 행과 열로 만들어지는 2차원 배열 형태
- 열은 각각의 시리즈 객체이다. key 값이 열 이름이 된다.
dict_data = {'c0':[1,2,3],'c1':[4,5,6],'c2':[7,8,9],'c3':[10,11,12],'c4':[13,14,15]}
df=pd.DataFrame(dict_data)
c0 c1 c2 c3 c4
0 1 4 7 10 13
1 2 5 8 11 14
2 3 6 9 12 15
- 데이터 내용 확인
- columns : 컬럼명 확인
- head() : 상단 5개 확인
- tail() : 하단 5개 확인
- shape : 행,열 크기 확인
- info() : 데이터에 대한 정보 확인 - 행,열 크기, 컬럼명
- type() : 데이터 타입
- 열선택
- 열 1개 선택 : 시리즈 객체를 반환한다.
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
dtype='object')
names = t['Name'].head() # t.Name 으로도 사용 가능
print(names)
print(type(names))
0 Kelly, Mr. James
1 Wilkes, Mrs. James (Ellen Needs)
2 Myles, Mr. Thomas Francis
3 Wirz, Mr. Albert
4 Hirvonen, Mrs. Alexander (Helga E Lindqvist)
Name: Name, dtype: object
<class 'pandas.core.series.Series'>
- 열 다중 선택 : 데이터 프레임으로 반환 한다.
names_age = t[["Name", "Age"]]
print(names_age)
print(type(names_age))
Name Age
0 Kelly, Mr. James 34.5
1 Wilkes, Mrs. James (Ellen Needs) 47.0
2 Myles, Mr. Thomas Francis 62.0
3 Wirz, Mr. Albert 27.0
4 Hirvonen, Mrs. Alexander (Helga E Lindqvist) 22.0
<class 'pandas.core.frame.DataFrame'>
데이터 필터링
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 892 0 3 Kelly, Mr. James male 34.5 0 0 330911 7.8292 NaN Q
1 893 1 3 Wilkes, Mrs. James (Ellen Needs) female 47.0 1 0 363272 7.0000 NaN S
2 894 0 2 Myles, Mr. Thomas Francis male 62.0 0 0 240276 9.6875 NaN Q
3 895 0 3 Wirz, Mr. Albert male 27.0 0 0 315154 8.6625 NaN S
4 896 1 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female 22.0 1 1 3101298 12.2875 NaN S
- Boolean 인덱싱 : true 만 추출
# 35살 초과인 데이터 추출
d1 = t["Age"]>35
print(t[d1])
PassengerId Survived Pclass \
1 893 1 3
2 894 0 2
11 903 0 1
13 905 0 2
14 906 1 1
- isin() : 각각의 요소가 데이터 프레임, 시리즈에 존재하는지 파악하여 true/false 반환
# Pclass 변수의 값이 1일 경우, True/False 값 반환
t['Pclass'].isin([1])
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
11 903 0 1 Jones, Mr. Charles Cresson male 46.0 0 0 694 26.0000 NaN S
12 904 1 1 Snyder, Mrs. John Pillsbury (Nelle Stevenson) female 23.0 1 0 21228 82.2667 B45 S
14 906 1 1 Chaffee, Mrs. Herbert Fuller (Carrie Constance... female 47.0 1 0 W.E.P. 5734 61.1750 E31 S
20 912 0 1 Rothschild, Mr. Martin male 55.0 1 0 PC 17603 59.4000 NaN C
22 914 1 1 Flegenheim, Mrs. Alfred (Antoinette) female NaN 0 0 PC 17598 31.6833 NaN
- isna() : 결측값은 true 반환, 그외에는 false 반환
- notna() : 결측값은 false 반환, 그외에는 true 반환
9 901 0 3 Davies, Mr. John Samuel male 21.0 2 0 A/4 48871 24.1500 NaN S
10 902 0 3 Ilieff, Mr. Ylio male NaN 0 0 349220 7.8958 NaN S
t["Age"].isna()[0:12] #10번째에 Age 가 NaN
9 False
10 True # NaN 은 true 값 반환
11 False
t[t["Age"].isna()].head()
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
10 902 0 3 Ilieff, Mr. Ylio male NaN 0 0 349220 7.8958 NaN S
- 결측치 제거
- dropna(axis=0) : 결측치 존재하는 행 전체 제거
- dropna(axis=1) : 결측치 존재하는 열 전체 제거
- 이름과 인덱스로 행, 열 선택
- loc[] : 행 이름과 열 이름 사용
- iloc[] : 행번호와 열 번호 사용
# 나이가 35세 초과인 사람의 이름과 나이 출력
t.loc[t['Age']>35, ['Name', 'Age']]
- 통계 관련 기능
- mean() : 평균값
- median() : 중앙값
- describe() : 통계 요약
- agg() : 여러개 열에 여러 함수 적용
- groupby() : 그룹별 집계
- value_counts() : 값 개수
- 행, 열추가
- DataFrame.loc[새로운 행 이름] = 데이터 값
- DataFrame['열이름']
728x90
반응형
'Development > Python' 카테고리의 다른 글
머신러닝 관련 용어 (0) | 2023.06.12 |
---|---|
colab 에서 kaggle 설정 (0) | 2023.06.07 |
NumPy 사용 (0) | 2023.05.09 |
Conda python 버전 업데이트 (0) | 2023.04.15 |
Mac 에서 Conda 설치 (0) | 2023.04.05 |