我的pandas数据框在前3列中包含年,月和日期。要将它们转换为日期时间类型,我使用for循环遍历每一行,将每行的前3列中的内容作为datetime函数的输入。我可以在这里避免for循环,并将日期作为日期时间吗?
答案 0 :(得分:1)
我不确定是否有矢量化钩子,但无论如何你可以使用apply
:
>>> df = pd.DataFrame({"year": [1992, 2003, 2014], "month": [2,3,4], "day": [10,20,30]})
>>> df
day month year
0 10 2 1992
1 20 3 2003
2 30 4 2014
>>> df["Date"] = df.apply(lambda x: pd.datetime(x['year'], x['month'], x['day']), axis=1)
>>> df
day month year Date
0 10 2 1992 1992-02-10 00:00:00
1 20 3 2003 2003-03-20 00:00:00
2 30 4 2014 2014-04-30 00:00:00