파이썬판다스 따라하기/3판다스연산

#판다스연산1편 - 판다스 사칙연산

모두의 실험실 2023. 5. 27. 20:09
728x90

판다스연산을 시작하기 전에 

계속 반복해야 하는것이 있음

 

판다스는 패키지를 활용하는 것이며

가장 기본적인 형태는 수 없이 반복해도

지나치지 않음

import pandas as pd
df = pd.DataFrame()

print(df)

-결과 (드래그로 확인가능)

Empty DataFrame
Columns: []
Index: []

 

비어있는 데이터프레임을 선언했고

결과는 인덱스와 컬럼이 출력됨

비어있는 데이터프레임이기 때문에

값은 출력되지 않음

 

주피터 노트북에서는 print()로

출력을 할 수도 있지만

변수 자체를 코딩할 수 있는 Cells에

입력후 출력할 수도 있음

 

사용자가 시각적으로 편한 방법으로선택가능함

 

#출력1 print로 출력
import pandas as pd
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'])


df['col1'] = [1,4,7]
df['col2'] = [2,5,8]
df['col3'] = [3,6,9]

print(df)

-결과 (이미지 출력)

#출력2 직집출력
import pandas as pd
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'])

df['col1'] = [1,4,7]
df['col2'] = [2,5,8]
df['col3'] = [3,6,9]

df

-결과 (이미지 출력)

 

판다스의 기본 입력은 다양함

import pandas as pd
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'])

df['col1'] = [1,4,7]
df['col2'] = [2,5,8]
df['col3'] = [3,6,9]
print('df')
print(df)

print('-------------')
data = [[1,2,3],[4,5,6],[7,8,9]]
df2 = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'],data = data)
print('df2')
print(df2)

-결과 (이미지 출력)

data = [[1,2,3],[4,5,6],[7,8,9]] 를 살펴보면

index기준으로 입력되는 것을 볼수 있음

 

결과는 동일하며 사용자가 원하는 방식대로

사용하되 DataFrame 함수 내부에 columns와 index

그리고 data는 알아야 함

 

import pandas as pd
data = [[1,2,3],[4,5,6],[7,8,9]]
df = pd.DataFrame(data = data)

print(df)

-결과 (이미지 출력)

columns index data 요소가 있음

이중에 columns와 index를 입력하지 않으면

기본적으로 0부터 시작하여 정의됨

 

그러면 data가 입력되지 않으면 뭐다?

import pandas as pd
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'])

print(df)

-결과 (이미지 출력)

 

data가 잆력되지 않으면, NaN으로 결측치라고 불리며

누락된 숫자 데이터를 의미함 우선 여기까지만 알아두고 결측치편에서 심도있게 예정임

 

pandas사칙연산은 python기초에서 배운 

사칙연산과 비슷함

다양한 예시도 살펴 볼수 있지만

다른 사람이 잘 만들어 놓은 함수가 

활용도가 큼

 

DataFrame.add(other, axis='columns', level=None, fill_value=None)

의 함수가 존재함 add 함수임

other는 다른 dataframe형태 될 수 있음

df = df + df2와 df = df.add(df2) 와 동일한 결과값임

df3 = df.add(df2,fill_value =10) 로 하면 df와 df2 둘중

한 군데에 해당하여 NaN을 10으로 바꿔서 연산을 진행함

해당 columns과 index에 모두 NaN이면 결과도 NaN이됨

 

 

import pandas as pd
data = [[1,2,3],[4,5,6],[7,8,9]]
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'],data = data)
print(df)
print('\n------------------\n')
df2 = df.add(1, fill_value = 10)
print(df2)
print('\n------------------\n')

df3 = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'])
print(df3)
print('\n------------------\n')
df4 = df3.add(1, fill_value = 10)
print(df4)
print('\n------------------\n')

-결과 (이미지 출력)

 

기본적으로 덧셈은 columns와 index의 위치에

맞게 각각 연산이 이루어짐

add(1)은 전체 columns과 index에 동일하게

적용됨

그리고 fill_value =  10은 NaN에 해당되는 위치에

10을 채운다는 의미임

그래서 add(1, fill_value = 10)을 하면 NaN에 10을채우고 1을 모두 더해줌

 

import pandas as pd
data = [[1,2,3],[4,5,6],[7,8,9]]
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'],data = data)
print(df)
print('\n------------------\n')
data2 = [[1],[4],[7]]  
df2 = pd.DataFrame(columns = ['col1'],index = ['index1','index2','index3'],data = data2)
print(df2)
print('\n------------------\n')

df3 = df.add(df2)
print(df3)
print('\n------------------\n')

df4 = df.add(df2, fill_value = 10)
print(df4)
print('\n------------------\n')

-결과 (이미지 출력)

 

특징적인 것은 NaN과 숫자의 연산 결과는

NaN이 됨그래서 fill_value = 10이 수행되면 df와 df2연산전 df2의 NaN에 10이초기화 입력되고 df의 columns와 index에해당되는 값들과 연산이 완료됨

 

DataFrame.sub(other, axis='columns', level=None, fill_value=None)

의 함수가 존재함 sub함수임 빼기 함수이며 전체 틀은 add와 유사함

import pandas as pd
data = [[1,2,3],[4,5,6],[7,8,9]]
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'],data = data)
print(df)
print('\n------------------\n')
data2 = [[1],[4],[7]]  
df2 = pd.DataFrame(columns = ['col1'],index = ['index1','index2','index3'],data = data2)
print(df2)
print('\n------------------\n')

df3 = df.sub(df2)
print(df3)
print('\n------------------\n')

df4 = df.sub(df2, fill_value = 10)
print(df4)
print('\n------------------\n')

-결과 (이미지 출력)

 

DataFrame.mul(other, axis='columns', level=None, fill_value=None)

의 함수가 존재함 mul함수임 곱하기 함수이며 전체 틀은 add와 유사함

import pandas as pd
data = [[1,2,3],[4,5,6],[7,8,9]]
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'],data = data)
print(df)
print('\n------------------\n')
data2 = [[1],[4],[7]]  
df2 = pd.DataFrame(columns = ['col1'],index = ['index1','index2','index3'],data = data2)
print(df2)
print('\n------------------\n')

df3 = df.mul(df2)
print(df3)
print('\n------------------\n')

df4 = df.mul(df2, fill_value = 10)
print(df4)
print('\n------------------\n')

-결과 (이미지 출력)

 

DataFrame.div(other, axis='columns', level=None, fill_value=None)

의 함수가 존재함 div함수임 나누기  함수이며 전체 틀은 add와 유사함

import pandas as pd
data = [[1,2,3],[4,5,6],[7,8,9]]
df = pd.DataFrame(columns = ['col1','col2','col3'],index = ['index1','index2','index3'],data = data)
print(df)
print('\n------------------\n')
data2 = [[1],[4],[7]]  
df2 = pd.DataFrame(columns = ['col1'],index = ['index1','index2','index3'],data = data2)
print(df2)
print('\n------------------\n')

df3 = df.div(df2)
print(df3)
print('\n------------------\n')

df4 = df.div(df2, fill_value = 10)
print(df4)
print('\n------------------\n')

-결과 (이미지 출력)

 

판다스의 사칙연산이

일반 사칙연산과 유사한 것을 확인함

NaN이 포함되어 있으면 연산이 안되고

일괄적 fill_value로 입력이 되며

입력은 float형임

 

태그
-------------------------------------------------------------
#python, #파이썬, #anaconda, #아나콘다, #기초, #클래스, #class, #import, #selenium, #셀레늄, #자동, #교육, #코딩교육, #coding, #chatgpt, #챗GPT, #로봇,

 

728x90
반응형