import pandas as pd
import numpy as np
from pandas import Series
from pandas import DataFrame
date_list = [{'yyyy-mm-dd': '2000-06-27'},
{'yyyy-mm-dd': '2002-09-24'},
{'yyyy-mm-dd': '2005-12-20'}]
df = pd.DataFrame(date_list, columns = ['yyyy-mm-dd'])
df
yyyy-mm-dd
0 2000-06-27
1 2002-09-24
2 2005-12-20
‘-’를 기준으로 나눈 첫 번째 값인 yyyy의 값을 year라는 새로운 열을 만들어 넣는 과정
def extract_year(row):
return row.split('-')[0]
df['year'] = df['yyyy-mm-dd'].apply(extract_year)
df
yyyy-mm-dd year
0 2000-06-27 2000
1 2002-09-24 2002
2 2005-12-20 2005
def extract_year(year, current_year):
return current_year - int(year)
df['age'] = df['year'].apply(extract_year, current_year=2022)
df
yyyy-mm-dd year age
0 2000-06-27 2000 22
1 2002-09-24 2002 20
2 2005-12-20 2005 17
def get_introduce(age, prefix, suffix):
return prefix + str(age) + suffix
df['introduce'] = df['age'].apply(get_introduce, prefix="I am ", suffix=" years old")
df
yyyy-mm-dd year age introduce
0 2000-06-27 2000 22 I am 22 years old
1 2002-09-24 2002 20 I am 20 years old
2 2005-12-20 2005 17 I am 17 years old
def get_introduce2(row):
return "I was born in "+str(row.year)+" my age is "+str(row.age)
df.introduce = df.apply(get_introduce2, axis=1)
df
yyyy-mm-dd year age introduce
0 2000-06-27 2000 22 I was born in 2000 my age is 22
1 2002-09-24 2002 20 I was born in 2002 my age is 20
2 2005-12-20 2005 17 I was born in 2005 my age is 17