【发布时间】:2018-11-21 19:22:15
【问题描述】:
一列有日期,而另一列有一个包含日期的字符串,所以我首先需要从该字符串中提取日期部分。
import pandas as pd
import datetime
from dateutil.relativedelta import relativedelta
# the dataframe - id column always starts with year, month and day
df = pd.DataFrame({'id': ['19520630F8', '19680321A5', '19711113E2'],
'dte': ['2010-06-02', '2007-08-12', '2013-01-23']})
# create a date string from df['id'] to the format yyyy-mm-dd
dob = (df['id'].str[:4] + '-' +
df['id'].str[4:6] + '-' +
df['id'].str[6:8])
# calculate age (years only) at df['dte']
df['age'] = relativedelta(date, dob).years
我收到错误消息:
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
我不明白我的数据的模糊性,以及在哪里应用这些空/布尔/项目...
df['dta'] 列如果是对象数据类型而不是日期时间,但将 dob 的创建包装在 pd.to_datetime 中将无济于事。
编辑 预期的输出应该是
dte id age
0 2010-06-02 19520630F8 57
1 2007-08-12 19680321A5 39
2 2013-01-23 19711113E2 41
【问题讨论】:
标签: python pandas datetime dataframe