PYTHON PROGRAMMING FUNDAMENTALS¶
Pandas 의 장점¶
- Allows the use of labels for rows and columns
- 기본적인 통계데이터 제공
- NaN values 를 알아서 처리함. (not a number, 비어있는 데이터)
- 숫자 문자열을 알아서 로드함.
- 데이터셋들을 merge 할 수 있음. (합친다)
- It integrates with NumPy and Matplotlib
In [2]:
import pandas as pd
Pandas Series 데이터 생성하기¶
In [3]:
index = ['eggs', 'apples', 'milk', 'bread']
data = [30, 6, 'Yes', 'No']
In [5]:
# 용어 암기는 필수
# 판다스의 1차원 데이터를 => 시리즈(Series) 라고 부른다
In [9]:
x = pd.Series(data = data)
In [ ]:
# 판다스 배우기 전까지는,
# 인덱스?? = > 컴퓨터가 자동으로 매기는 0부터 시작하는 숫자
# 판다스에서는 인덱스라는 용어가 따로 존재한다
# 따라서, 이제부터 판다스를 다루면서
# 인덱스 라는 용어를 사용하면, 판다스의 인덱스라고 생각
# "컴퓨터가 매기는 인덱스" vs "인덱스"
# 판다스의 인덱스는, 왼쪽에 행부분에 붙어있는 글자
In [10]:
x
Out[10]:
0 30 1 6 2 Yes 3 No dtype: object
In [11]:
x.index
Out[11]:
RangeIndex(start=0, stop=4, step=1)
In [14]:
x.values
Out[14]:
array([30, 6, 'Yes', 'No'], dtype=object)
In [ ]:
In [16]:
groceries = pd.Series(data = data , index = index)
In [17]:
groceries
Out[17]:
eggs 30 apples 6 milk Yes bread No dtype: object
In [19]:
# 인덱스를 확인
groceries.index # object 는 판다스에선 문자열이라는 의미.
Out[19]:
Index(['eggs', 'apples', 'milk', 'bread'], dtype='object')
In [20]:
# 데이터를 확인
groceries.values # 판다스는 넘파이를 사람용으로만든거기 때문에 자동으로 넘파이로 된다
Out[20]:
array([30, 6, 'Yes', 'No'], dtype=object)
In [22]:
# shape 확인
groceries.shape
Out[22]:
(4,)
In [23]:
# 차원 확인
groceries.ndim
Out[23]:
1
In [24]:
# 데이터 갯수
groceries.size
Out[24]:
4
In [28]:
# 저장된 데이터의 타입을 확인
groceries.dtype # object = O = 숫자와 문자가 짬뽕 되었다는 의미
Out[28]:
dtype('O')
In [29]:
# 'apples' 가 groceries 안에 들어있나 ?
'apples' in groceries
Out[29]:
True
In [30]:
# "Yes"가 groceries 안에 들어있나 ?
In [31]:
"Yes" in groceries
Out[31]:
False
In [32]:
"Yes" in groceries.values
Out[32]:
True
Accessing and Deleting Elements in Pandas Series - 레이블과 인덱스¶
In [33]:
groceries
Out[33]:
eggs 30 apples 6 milk Yes bread No dtype: object
In [36]:
groceries[0]
Out[36]:
30
In [37]:
groceries["eggs"]
Out[37]:
30
In [44]:
groceries[ ['eggs','bread'] ]
Out[44]:
eggs 30 bread No dtype: object
In [45]:
groceries[1:]
Out[45]:
apples 6 milk Yes bread No dtype: object
In [46]:
groceries[ 'apples' :]
Out[46]:
apples 6 milk Yes bread No dtype: object
In [47]:
groceries
Out[47]:
eggs 30 apples 6 milk Yes bread No dtype: object
In [48]:
groceries[:3]
Out[48]:
eggs 30 apples 6 milk Yes dtype: object
In [51]:
groceries[ 'eggs':'milk']
Out[51]:
eggs 30 apples 6 milk Yes dtype: object
Arithmetic Operations on Pandas Series¶
In [61]:
index = ['apples', 'oranges', 'bananas']
data = [10, 6, 3,]
In [62]:
fruits = pd.Series(data = data , index = index)
In [63]:
fruits
Out[63]:
apples 10 oranges 6 bananas 3 dtype: int64
In [65]:
# 전체 5개씩 증가 되었다.
fruits = fruits + 5
In [66]:
fruits
Out[66]:
apples 15 oranges 11 bananas 8 dtype: int64
In [67]:
# 오렌지가 2개 팔렸다.
fruits["oranges"]-2
Out[67]:
9
In [69]:
fruits["oranges"] = fruits["oranges"]-2
In [70]:
fruits
Out[70]:
apples 15 oranges 9 bananas 8 dtype: int64
In [73]:
# 사과랑 바나나가 3개씩 팔렸다.
fruits[ ['apples','bananas']]
Out[73]:
apples 15 bananas 8 dtype: int64
In [74]:
fruits[ ['apples','bananas']] -3
Out[74]:
apples 12 bananas 5 dtype: int64
In [75]:
fruits[ ['apples','bananas']] = fruits[ ['apples','bananas']] -3
In [76]:
fruits
Out[76]:
apples 12 oranges 9 bananas 5 dtype: int64
실습¶
import pandas as pd
1. 다음과 같은 레이블과 값을 가지는 Pandas Series 를 만드세요. 변수는 dist_planets 로 만드세요.¶
distance_from_sun = [149.6, 1433.5, 227.9, 108.2, 778.6]¶
planets = ['Earth','Saturn', 'Mars','Venus', 'Jupiter']¶
dist_planets =¶
3. 거리를 빛의 상수 c( 18 ) 로 나눠서, 가는 시간이 얼마나 걸리는 지 계산하여 저장하세요.¶
time_light =¶
3. Boolean indexing을 이용해서 가는 시간이 40분보다 작은것들만 셀렉트 하세요.¶
close_planets =¶
In [77]:
distance_from_sun = [149.6, 1433.5, 227.9, 108.2, 778.6]
planets = ['Earth','Saturn', 'Mars','Venus', 'Jupiter']
In [79]:
dist_planets = pd.Series(data = distance_from_sun , index = planets )
In [80]:
dist_planets
Out[80]:
Earth 149.6 Saturn 1433.5 Mars 227.9 Venus 108.2 Jupiter 778.6 dtype: float64
In [81]:
dist_planets / 18
Out[81]:
Earth 8.311111 Saturn 79.638889 Mars 12.661111 Venus 6.011111 Jupiter 43.255556 dtype: float64
In [82]:
time_light = dist_planets / 18
In [83]:
time_light
Out[83]:
Earth 8.311111 Saturn 79.638889 Mars 12.661111 Venus 6.011111 Jupiter 43.255556 dtype: float64
In [84]:
time_light[time_light < 40]
Out[84]:
Earth 8.311111 Mars 12.661111 Venus 6.011111 dtype: float64
In [85]:
close_planets = time_light[time_light < 40]
In [86]:
close_planets
Out[86]:
Earth 8.311111 Mars 12.661111 Venus 6.011111 dtype: float64
In [87]:
dist_planets
Out[87]:
Earth 149.6 Saturn 1433.5 Mars 227.9 Venus 108.2 Jupiter 778.6 dtype: float64
'DataScience > Pandas' 카테고리의 다른 글
Pandas NaN을 처리하는 전략 dropna(), fillna() (0) | 2022.11.24 |
---|---|
Pandas CSV파일불러오기, .describe() 통계, .info()정보 (0) | 2022.11.24 |
Pandas 행, 열 추가, 데이터 삭제 drop(), rename(), 인덱스 초기화 reset_index(inplace= True) (0) | 2022.11.24 |
Pandas .iloc[ , ], 데이터 프레임에서 컬럼 만드는 방법 (0) | 2022.11.24 |
Pandas Dataframe, Nan의 의미, 데이터프레임 엑세스 (0) | 2022.11.23 |