09_숫자함수

숫자함수

  • Pandas는 데이터 컬럼 내에(데이터 개별 요소) 숫자함수를 적용할 수도 있고 컬럼(columns)간, 로우(row)간에도 숫자함수를 적용할 수 있다.
  • 자주 사용되는 숫자함수는 다음과 같다.

    • +, -. *, / : 같은 사치역산
    • mod : 나머지 구하기(%)
    • abs : 절대값
    • round : 소수점 특정 자릿수에서 반올림하기.
  • Pandas는 numpy의 범용함수를 지원한다.

    • np.power
    • np.sqauare
    • np.log
    • np.exp
    • np.sign
In [2]:
import pandas as pd
import numpy as np
#data  = np.arange(12).reshape((-1, 4))
data = np.random.randn(3,4)

row_index = [2000, 2001, 2002 ]
columns = ['Arizona','Boston', 'Chicago','Detroit']
df = pd.DataFrame(data = data, columns = columns)
print(df)
    Arizona    Boston   Chicago   Detroit
0 -0.584092  0.319290 -0.161392  1.548552
1  0.089711  0.014817  0.576248  0.610906
2  0.557450 -1.315001  1.116753  0.717668
In [3]:
print(abs(df))               # 전체의 컬럼에만  적용
print(abs(df['Arizona']))    # 하나의 컬럼에만  적용
print(abs(df.iloc[1])   )    # 전체의 로우에만  적용
    Arizona    Boston   Chicago   Detroit
0  0.584092  0.319290  0.161392  1.548552
1  0.089711  0.014817  0.576248  0.610906
2  0.557450  1.315001  1.116753  0.717668
0    0.584092
1    0.089711
2    0.557450
Name: Arizona, dtype: float64
Arizona    0.089711
Boston     0.014817
Chicago    0.576248
Detroit    0.610906
Name: 1, dtype: float64
In [4]:
# 컬럼 간 연산
df['Arizona'] + df['Boston']
Out[4]:
0   -0.264802
1    0.104528
2   -0.757551
dtype: float64
In [5]:
# 로우간 연산
df.iloc[1] + df.iloc[2]
Out[5]:
Arizona    0.647162
Boston    -1.300184
Chicago    1.693001
Detroit    1.328574
dtype: float64
In [6]:
df * 10
Out[6]:
ArizonaBostonChicagoDetroit
0-5.8409163.192899-1.61391915.485516
10.8971110.1481695.7624796.109055
25.574504-13.15001111.1675357.176681
In [7]:
df.mod(4)
Out[7]:
ArizonaBostonChicagoDetroit
03.4159080.3192903.8386081.548552
10.0897110.0148170.5762480.610906
20.5574502.6849991.1167530.717668
In [8]:
data  = np.arange(8).reshape((-1, 4))
columns = ['Arizona','Boston', 'Chicago','Detroit']
df = pd.DataFrame(data = data, columns = columns)
df
Out[8]:
ArizonaBostonChicagoDetroit
00123
14567
In [9]:
df**4
Out[9]:
ArizonaBostonChicagoDetroit
0011681
125662512962401
In [10]:
np.power(df,2)
Out[10]:
ArizonaBostonChicagoDetroit
00149
116253649
In [11]:
np.exp(df)
Out[11]:
ArizonaBostonChicagoDetroit
01.000002.7182827.38905620.085537
154.59815148.413159403.4287931096.633158
In [12]:
np.sign(df)
Out[12]:
ArizonaBostonChicagoDetroit
00111
11111
In [13]:
np.sqrt(np.power(df,2))
Out[13]:
ArizonaBostonChicagoDetroit
00.01.02.03.0
14.05.06.07.0


© 2017. All rights reserved.

Powered by ZooFighter v0.12