DS가 되기 위한 여정 👩‍💻

Data Science/Pandas

[elice 머신러닝] dataframe 문제..

Tashapark 2025. 5. 6. 20:23
728x90

- 너무 헷갈려서.. 머신러닝 2 안 하고 

전처리 판다스 부분 강의 다시 들어야 겠다 

 

import numpy as np
import pandas as pd

A = pd.DataFrame(np.ones((5, 5)) * 2)
B = pd.DataFrame(np.ones((7, 7)) * 3)

print("DataFrame A \n", A)
print("DataFrame B \n", B)


# Pandas 연산자를 활용해 행렬의 연산을 해보세요.
# NaN 값이 발생한다면 그 자리에는 -1을 채우세요.
# A + B (행렬의 덧셈)
add = A.add(B,fill_value=-1)
print(add,'\n')
# A - B (행렬의 뺄셈)
sub = A.sub(B, fill_value=-1)
print(sub,'\n')
# A * B (행렬의 원소 별 곱셈)
mul = A.mul(B, fill_value=-1)
print(mul,'\n')
# A / B (행렬의 원소 별 나눗셈)
div = A.div(B, fill_value=-1)
print(div,'\n')


# 3 x 3 데이터프레임을 정렬해보세요.
C = pd.DataFrame([[1,3,5],[15,10,5],[2,8,5]], index = ['a','b','c'], columns = ['d','e','f'])

# a 행을 기준으로 열을 내림차순 정렬
row_C = C[C.loc['a'].sort_values(ascending=False).index]


# f 열을 기준으로 행을 오름차순 정렬
column_C = C.sort_values('f', ascending=True)

print(row_C,'\n')
print(column_C,'\n')

 

[형변환 주의 .str.split().astype(int)]

import numpy as np
import pandas as pd

df = pd.read_csv("./data/taxi_fare_data.csv", quoting=3)

# 불러온 pickup_datetime은 ['2009-06-15 17:26:21 UTC', ...] 과 같은 형태를 지니고 있습니다.
# 시간 정보는 HH:MM:SS, HH:MM 두 종류의 데이터가 혼재되어 있습니다.
pickup_datetime = df['pickup_datetime'] 

# 적절한 특성 엔지니어링을 적용합니다.
# Note. pickup_datetime 값에도 이상치가 있습니다.
# 이상치를 처리하지 않고 문제를 풀어야 합니다.
# 'pickup_datetime'을 datetime 형식으로 변환

# 'pickup_datetime'을 datetime 형식으로 변환 
pickup_datetime = df['pickup_datetime']


# 'pickup_datetime'을 문자열로 처리하여 날짜에서 연도와 월을 추출
df['year'] = df['pickup_datetime'].str.split('-').str[0].astype(int) # 연도 추출
df['month'] = df['pickup_datetime'].str.split('-').str[1].astype(int)  # 월 추출 (정수형으로 변환)

# 지시사항 1. 3월에 탑승한 승객이 지불한 택시 요금 (fare_amount)의 합을 march_fare_sum 변수에 저장하세요.
# Hint. 택시비는 `fare_amount` 컬럼에 저장되어 있습니다.
march_fare_sum = df['fare_amount'][df['month']==3].sum()

# 지시사항 2. 2015년에 탑승한 승객이 지불한 택시 요금의 평균을 _2015_fare_avg 변수에 저장하세요.
# Hint. 택시비는 `fare_amount` 컬럼에 저장되어 있습니다.
_2015_fare_avg = df['fare_amount'][df['year']==2015].mean()
728x90
반응형