Python 熊猫从日期开始计算年龄

Python 熊猫从日期开始计算年龄,python,numpy,pandas,Python,Numpy,Pandas,我真的需要你的帮助。我以前的帖子很糟糕,不清楚-对不起-我希望我能删除,但希望这篇会更好 我需要根据日期计算年龄(参见分析部分和最终结果部分) 原始数据集 加载数据 分析 我尝试执行以下操作,但收到一个错误: now = datetime.now() df1['age'] = now - df1['dob'] 但我收到了错误提示: TypeError: unsported operant type(S) for -: 'datetime.datetime' and 'str' 最终结果 有

我真的需要你的帮助。我以前的帖子很糟糕,不清楚-对不起-我希望我能删除,但希望这篇会更好

我需要根据日期计算年龄(参见分析部分和最终结果部分)

原始数据集 加载数据 分析 我尝试执行以下操作,但收到一个错误:

now = datetime.now()
df1['age'] = now - df1['dob']
但我收到了错误提示:

TypeError:  unsported operant type(S) for -: 'datetime.datetime' and 'str'
最终结果
有什么建议吗?

将dob列从字符串转换为datetime对象

df1['dob'] = pd.to_datetime(df1['dob'])
now = datetime.now()    
df1['age'] = now - df1['dob']

使用格式将字符串转换为日期时间

df1['age'] = now - datetime.strptime(df1['dob'], "%m%d%Y")

如果条目不太多,您可以执行以下操作:

df['dob'] = df.dob.apply(lambda d: pd.to_datetime(d[-4:] + d[:4]))
now - df.dob

哪个是
type(df1['dob'])
的输出?我猜它是一个字符串,因为
TypeError
的输出指示类型(['dob'])是'o',这给了我相同的错误TypeError:'datetime.datetime'和'str'不支持的操作数类型你能用这个来检查熊猫版本吗?'pd.\u version\u pd.\u version\u version\uuuu 0.13.1hmm,不知道发生了什么。代码似乎在我这边起作用了。它似乎与csv有关。当我使用pd.read_clipboard()读取数据帧时,即首先复制数据帧,然后运行命令;约会时间的东西对我来说很有用
df1['dob'] = pd.to_datetime(df1['dob'])
now = datetime.now()    
df1['age'] = now - df1['dob']
df1['age'] = now - datetime.strptime(df1['dob'], "%m%d%Y")
df['dob'] = df.dob.apply(lambda d: pd.to_datetime(d[-4:] + d[:4]))
now - df.dob