안경잡이개발자

728x90
반응형

  파이썬(Python)에서 Pandas 라이브러리를 제대로 활용하기 위해서는 다양한 연산 방법과 함수에 대해서 알고 있어야 합니다.


※ 데이터 프레임의 NULL 여부 확인 ※


  NULL 여부를 확인할 때는 isnull() 혹은 notnull() 함수를 사용할 수 있습니다. 현실 세계의 다양한 데이터는 존재하지 않는 경우도 있기 때문에 NULL 값에 대한 체크가 필요합니다. 또한 fillna() 함수를 이용해서 NULL 값을 다른 값으로 치환할 수 있습니다.


import numpy as np
import pandas as pd

word_dict = {
    'Apple': '사과',
    'Banana': '바나나',
    'Carrot': '당근',
    'Durian': '두리안'
}

frequency_dict = {
    'Apple': 3,
    'Banana': 5,
    'Carrot': np.nan,
    'Durian': 2
}

importance_dict = {
    'Apple': 3,
    'Banana': 2,
    'Carrot': 1,
    'Durian': 1
}

word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)
importance = pd.Series(importance_dict)

summary = pd.DataFrame({
    'word': word,
    'frequency': frequency,
    'importance': importance
})

print(summary.notnull())
print(summary.isnull())
summary['frequency'] = summary['frequency'].fillna('데이터 없음')
print(summary)


※ Series 자료형의 연산 ※


  Series 자료형은 사칙연산을 수행할 수 있습니다. 이 때 NULL 데이터는 어떻게 처리할지의 여부도 결정할 수 있습니다.


import pandas as pd array1 = pd.Series([1, 2, 3], index=['A', 'B', 'C']) array2 = pd.Series([4, 5, 6], index=['B', 'C', 'D']) array1 = array1.add(array2, fill_value=0) print(array1)


※ Data Frame 자료형의 연산 ※


  Series 자료형을 여러 개 묶은 형태인 Data Frame도 당연히 사칙연산을 수행할 수 있습니다. 저는 2차원 배열 형태를 Data Frame으로 변환하여 연산을 수행해보았습니다. Data Frame 변수인 array1에서는 원래 (0, 2) 위치에 데이터가 존재하지 않았으므로 여전히 NaN으로 처리됩니다. 다만 array1에 더해지는 array2에서 존재하지 않는 데이터는 0으로 치환됩니다.


import pandas as pd

array1 = pd.DataFrame([[1, 2], [3, 4]], index=['A', 'B'])
array2 = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], index=['B', 'C', 'D'])

print(array1)
print(array2)

array1 = array1.add(array2, fill_value=0)
print(array1)


※ Data Frame의 집계 함수 ※


import pandas as pd

array1 = pd.DataFrame([[1, 2], [3, 4]], index=['A', 'B'])
array2 = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], index=['B', 'C', 'D'])

array1 = array1.add(array2, fill_value=0)
print(array1)
print("컬럼 1의 합:", array1[1].sum())
print(array1.sum())


※ Data Frame의 정렬 함수 ※


  데이터 프레임의 특정한 컬럼으로 정렬을 수행할 수도 있습니다.


import numpy as np import pandas as pd word_dict = { 'Apple': '사과', 'Banana': '바나나', 'Carrot': '당근', 'Durian': '두리안' } frequency_dict = { 'Apple': 3, 'Banana': 5, 'Carrot': 1, 'Durian': 2 } importance_dict = { 'Apple': 3, 'Banana': 2, 'Carrot': 1, 'Durian': 1 } word = pd.Series(word_dict) frequency = pd.Series(frequency_dict) importance = pd.Series(importance_dict) summary = pd.DataFrame({ 'word': word, 'frequency': frequency, 'importance': importance }) summary = summary.sort_values('frequency', ascending=False) print(summary)



728x90
반응형