Python 如何使用其他列中的日期/时间信息在Pandas中创建新列

Python 如何使用其他列中的日期/时间信息在Pandas中创建新列,python,pandas,datetime,Python,Pandas,Datetime,我有一个数据集,其中年/月/日/小时/分钟/秒数据存储在单独的列中: Day,Date,Month,Year,Hour,Min,Sec,Wind dir,WS (m/s),Press (hPa),RH (%),T(C),Td(C),SR (W/m2) Thu,11,April,2019,16,23,27,31,1.28,993.4,38,7,-6.1,470 Thu,11,April,2019,16,24,27,103,1.21,993.5,39,7,-5.9,515 我已将其从csv文件导入

我有一个数据集,其中年/月/日/小时/分钟/秒数据存储在单独的列中:

Day,Date,Month,Year,Hour,Min,Sec,Wind dir,WS (m/s),Press (hPa),RH (%),T(C),Td(C),SR (W/m2)
Thu,11,April,2019,16,23,27,31,1.28,993.4,38,7,-6.1,470
Thu,11,April,2019,16,24,27,103,1.21,993.5,39,7,-5.9,515
我已将其从csv文件导入到熊猫数据框中:

df=pd.read_csv('/Users/jacks/Downloads/Cornell/SP20/Instrumentation/Lab 5/EAS2500_MetPak11_18April2019.csv',engine='python')

我想在此dataframe中创建一个新列,以datetime格式存储日期/时间数据。我已使用以下代码尝试此操作:

df["Date_Time"] = datetime(df["Year"],df["Month"],df["Day"],df["Hour"],df["Min"],df["Sec"])
但我得到了以下错误:

raise TypeError(f"cannot convert the series to {converter}")
TypeError: cannot convert the series to <class 'int'>
raisetypeerror(f“无法将序列转换为{converter}”)
TypeError:无法将序列转换为

为什么这不起作用?我将如何完成这项任务?

回答评论中的问题:如何将月份名称转换为数字

下面是一个例子:

df = pd.DataFrame(["Apr","May"], columns=["Month"])
mnth_to_num = {"Apr":4,"May":5}
df["Month_Num"] = df["Month"].apply(lambda x: mnth_to_num[x])
使用:

这张照片是:

0   2019-04-11 16:23:27
1   2019-04-11 16:24:27
Name: Date_Time, dtype: datetime64[ns]
试试这个:

 df["datetime"] = df[["Year","Month","Date","Hour","Min","Sec"]].astype(str).agg('-'.join, axis=1)
 df["datetime"] = pd.to_datetime(df["datetime"],format="%Y-%B-%d-%H-%M-%S")

我想这个月是一个痛苦的月份,熊猫们期待着number@Alex虽然我记得datetime支持对一周中的月/日的引用,但这似乎是合理的?有没有一种方法可以让我彻底检查并系统地将“月”列中的每个“四月”实例替换为4?这成功地创建了一个包含相关月数的新列。谢谢但是,我的原始版本无法将序列转换为错误,即使我在datetime函数中引用Month_Num时也是如此。哦,我看到Shubham比我快了一步
 df["datetime"] = df[["Year","Month","Date","Hour","Min","Sec"]].astype(str).agg('-'.join, axis=1)
 df["datetime"] = pd.to_datetime(df["datetime"],format="%Y-%B-%d-%H-%M-%S")