320x100
import pandas as pd
summer = pd.read_csv('summer.csv')
og_1988 = summer.loc[summer.Year == 1988]
og_1988.info()
'''
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1546 entries, 18051 to 19596
Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Year 1546 non-null int64
1 City 1546 non-null object
2 Sport 1546 non-null object
3 Discipline 1546 non-null object
4 Athlete 1546 non-null object
5 Country 1546 non-null object
6 Gender 1546 non-null object
7 Event 1546 non-null object
8 Medal 1546 non-null object
dtypes: int64(1), object(8)
memory usage: 120.8+ KB
'''
og_since1992 = summer.loc[summer.Year >= 1992]
og_since1992
# 연속적으로 펼쳐져 있는 기간 안에서 원하는 값을 찾는 방법
# summer 이라는 변수의 Year 컬럼 중에서 1960 부터 1969 사이의 값
# inclusive 는 경계값을 포함할건지 말지를 선택하는 설정이다.
# 설정해주면 1960~ 1969, False로 하면 1961~1968
og_60s = summer.loc[summer.Year.between(1960, 1969, inclusive=True)]
og_60s.tail()
# 불 연속적으로 펼쳐져 있는 기간 안에서 원하는 값을 찾는 방법 isin
# 1
choosen_year = [1972,1996]
og_72_96 = summer.loc[summer.Year.isin(choosen_year)]
og_72_96
# 안에 들어있는 행 값을 unique로 확인
og_not_72_96 = summer.loc[~summer.Year.isin(choosen_year)]
og_not_72_96.Year.unique()
## any() and all()
import pandas as pd
titanic = pd.read_csv('titanic.csv')
(titanic.sex == 'male').any()
# True
# any()는 해당되는 값이 단 하나라도 있다면 True 를 반환한다.
(titanic.sex == 'male').all()
# False
(titanic.age == 80.0).any()
# True
# all()은 모든 원소가 해당이 되어야 True를 반환 한다.
pd.Series([-1, 0.5, 1, -0.1, 0]).all()
# False
## Removing Columns 열 삭제하기 ** 중요 **
import pandas as pd
summer = pd.read_csv('summer.csv')
summer.head()
# inplace = True 를 해줘야 적용된다.
summer.drop(columns = 'Sport')
# 다중컬럼 drop하기 원할때
summer.drop(columns = ['Sport', 'Discipline'])
# inplace = True 없이 바로 삭제된다.
del summer['Event']
summer = pd.read_csv('summer.csv')
summer.drop(labels = 'Event', axis = 'columns')
# 남기고 싶은 열의 갯수가 적을때는 이렇게 일일이 타이핑해주고
summer = summer.loc[:, ['Year', 'City', 'Athlete', 'Country', 'Gender', 'Medal']]
summer.head()
# 남기고 싶은 열의 갯수가 많을때는 drop 메소드로 삭제해준다.
summer.drop(columns= ['City', 'Year'])
# 물론 변형까지 원한다면 inplace = True로 해준다.
## Removing Rows 행 삭제하기 **중요**
import pandas as pd
summer = pd.read_csv('summer.csv', index_col = 'Athlete')
summer.head()
# # 행 삭제방법 1 index
summer.drop(index = ['HAJOS, Alfred', 'HERSCHMANN, Otto'], inplace=True)
summer
# 행 삭제방법 2 labels
summer.drop(labels = 'DRIVAS, Dimitrios', axis = 0, inplace=True)
summer
summer = summer.loc[summer.Year == 1996]
summer.head()
summer = pd.read_csv('summer.csv', index_col = 'Athlete')
summer
mask1 = summer.Year == 1996
mask2 = summer.Sport == 'Aquatics'
summer.loc[~(mask1|mask2)]
(summer.Year == 1996).value_counts
'''
False 29306
True 1859
Name: Year, dtype: int64
'''
1996 in summer.Year.values
summer.Sport.isin(['Aquatics']).any()
# True
(summer.Sport == 'Aquatics').any()
# True
(summer.Sport == 'Aquatics').any()
# True
## Adding new Columns to a DataFrame 열 추가
import pandas as pd
titanic = pd.read_csv('titanic.csv')
titanic.head()
# 정말 흥미로운 부분이다. 보통 변수[컬럼] 과 변수.컬럼 은 같다고 배웠다.
# 하지만 여기서는 변수[컬럼] = 설정값을 입력할 경우 컬럼이 추가되지만
# 변수.컬럼 = 설정값 을 입력할 경우, 출력값이 리턴되긴 하지만 컬럼이 추가되진 않는다.
# 변수[컬럼] = 설정값 버전
titanic['Zeros'] = 0
titanic.head()
# 변수.컬럼 = 설정값 버전
titanic.Ones = 1
titanic.head()
## Creating Columns based on other columns
import pandas as pd
titanic = pd.read_csv('titanic.csv')
titanic.head()
# 일종의 반복문 (루프) 이다.
# 타이타닉 침몰 연도가 1912년이였고, 이를 바탕으로 탑승자 전원 각각의 출생년도를 확인하고자 한다.
1912 - titanic.age
'''
0 1890.0
1 1874.0
2 1886.0
3 1877.0
4 1877.0
...
886 1885.0
887 1893.0
888 NaN
889 1886.0
890 1880.0
Name: age, Length: 891, dtype: float64
'''
# 동 탑승자중, 형제, 자매 등 가족의 수가 3명 초과일 경우의 수는?
(titanic.sibsp + titanic.parch > 3).value_counts()
'''
False 829
True 62
dtype: int64
'''
# relatives 컬럼 추가하기
titanic['relatives'] = titanic.sibsp + titanic.parch
titanic.head()
titanic.drop(columns = ['sibsp', 'parch'], inplace=True)
titanic
# 물가가 100배 올랐다고 가정하고 변수 지정
inflation_factor = 100
present_time_value = titanic.fare * inflation_factor
# 기존에 있던 열에 변형된 값을 심어주기
titanic.fare = present_time_value
titanic
## Adding Columns with insert() 새 열(컬럼)을 특정한 위치에 넣어주기
import pandas as pd
titanic = pd.read_csv('titanic.csv')
titanic.head()
titanic['Test'] = 'Test'
titanic
relatives = titanic.sibsp + titanic.parch
relatives.head()
# 위치, 컬럼명, 컬럼 값으로 들어갈 것
titanic.insert(loc = 6, column = 'relatives', value = relatives)
titanic
300x250
'개발일지 > Pandas' 카테고리의 다른 글
pandas 판다스 틀린부분 복기2 (0) | 2022.07.18 |
---|---|
pandas (판다스) 기초 10 세로배열재정의zip, Series, add rows 다중 열 추가 (0) | 2022.07.18 |
pandas (판다스) 기초 8 and, or (0) | 2022.07.18 |
pandas (판다스) 기초 7 filtering (0) | 2022.07.18 |
pandas 판다스 틀린부분 복기 (0) | 2022.07.16 |