Làm thế nào tôi có thể tính độ tuổi của một người [dựa trên cột DOB] và thêm một cột vào khung dữ liệu với giá trị mới?
DataFrame trông giống như sau:
lname fname dob
0 DOE LAURIE 03011979
1 BOURNE JASON 06111978
2 GRINCH XMAS 12131988
3 DOE JOHN 11121986
Tôi đã thử làm như sau:
now = datetime.now[]
df1['age'] = now - df1['dob']
Nhưng, đã nhận được lỗi sau:
TypeError: Loại toán hạng không được hỗ trợ cho -: '
Đã hỏi ngày 6 tháng 11 năm 2014 lúc 20:31Nov 6, 2014 at 20:31
import datetime as DT
import io
import numpy as np
import pandas as pd
pd.options.mode.chained_assignment = 'warn'
content = ''' ssno lname fname pos_title ser gender dob
0 23456789 PLILEY JODY BUDG ANAL 0560 F 031871
1 987654321 NOEL HEATHER PRTG SRVCS SPECLST 1654 F 120852
2 234567891 SONJU LAURIE SUPVY CONTR SPECLST 1102 F 010999
3 345678912 MANNING CYNTHIA SOC SCNTST 0101 F 081692
4 456789123 NAUERTZ ELIZABETH OFF AUTOMATION ASST 0326 F 031387'''
df = pd.read_csv[io.StringIO[content], sep='\s{2,}']
df['dob'] = df['dob'].apply['{:06}'.format]
now = pd.Timestamp['now']
df['dob'] = pd.to_datetime[df['dob'], format='%m%d%y'] # 1
df['dob'] = df['dob'].where[df['dob'] < now, df['dob'] - np.timedelta64[100, 'Y']] # 2
df['age'] = [now - df['dob']].astype['