axis=1 → 열 방향으로 이동 (행 단위 연산)
df = pd.DataFrame({
'A': [1, 2],
'B': [10, 20]
})
result = df.apply(lambda row: row['A'] + row['B'], axis=1)
print(result.tolist())
출력결과는?
[11, 22]
def calc_total(row):
return row['가격'] * row['수량']
# axis=1 : '열' 방향으로 이동하며 적용
df_sales['총매출'] = df_sales.apply(calc_total, axis=1)
df_sales
.
#결과는?
df = pd.DataFrame({
'A':[1,2,3,4,5],
'B':[10,20,30,40,50],
'C':[100,200,300,400,500]
},index=['a','b','c','d','e'])
df.loc['b':,'A']
df.iloc[1,0:5]
답

#가격 * 수량으로 총매출 컬럼을 추가하세요
#총매출이 20,000원 이상인 상품만 출력하세요
df_sales = pd.DataFrame({
"상품": ["사과", "바나나", "딸기"],
"가격": [3000, 1500, 12000],
"수량": [5, 10, 2]})
답
def total_sales(row):
return row["가격"]*row["수량"]
df_sales["총매출"]=df_sales.apply(total_sales, axis=1)
print(df_sales)
df_sales[df_sales["총매출"]>=20000]
--------
import pandas as pd
df_sales = pd.DataFrame({
"상품": ["사과", "바나나", "딸기"],
"가격": [3000, 1500, 12000],
"수량": [5, 10, 2]
})
df_sales["총매출"] = df_sales["가격"] * df_sales["수량"]
result = df_sales[df_sales['총매출'] >= 20000]
print(result)
---------------------
df_sales['총매출']=df_sales["가격"] * df_sales["수량"]
df_sales[df_sales['총매출']>=20000]
# lambda 함수와 apply를 사용하여 가격 컬럼의 모든 값에 price가
# 1500원 이상일 때 고가, 미만일 때 저가를 부여하세요.
df_sales=pd.DataFrame({
'상품':['사과','딸기','바나나','사과','딸기'],
'수량':[10,5,8,12,7],
'가격':[1500,2000,1800,1200,2500]})
답
df_sales['가격구분'] = df_sales['가격'].apply(
lambda price: '고가' if price >= 1500 else '저가'
)
# "이름이 같으면 중복으로 치자!" (가장 첫 번째 데이터만 남김 - keep='first')
import pandas as pd
df = pd.DataFrame({
'이름': ['철수', '영희', '철수', '민수', '철수'],
'날짜': ['2024-10-11', '2024-01-01', '2024-01-01', '2024-11-02', '2024-01-01'],
'금액': [1000, 2000, 1000, 3000, 1000]
})
답
df.drop_duplicates(subset='이름', keep='first', inplace=True)
print(df)
-------------
df_clean=df.drop_duplicates(subset=['이름'], keep="first")
df_clean
#tips 데이터에서 성별(sex) 기준으로 평균 팁(tip)을 계산하시오.
import seaborn as sns
tips = sns.load_dataset("tips")
답
tips.groupby('sex')['tip'].mean()