python - 如何使用来自其他列的日期/时间信息在 Pandas 中创建新列
问题描述
我有一个数据集,其中年/月/日/小时/分钟/秒数据存储在单独的列中:
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 文件导入到 Pandas 数据框中:
df = pd.read_csv('/Users/jacks/Downloads/Cornell/SP20/Instrumentation/Lab 5/EAS2500_MetPak11_18April2019.csv', engine='python')
我想在此数据框中创建一个新列,以日期时间格式存储日期/时间数据。我已经使用以下代码进行了尝试:
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'>
为什么这不起作用,我将如何完成这项任务?
解决方案
利用:
df_time = df[["Year", "Month", "Date", "Hour", "Min", "Sec"]].astype(str).agg("".join, axis=1)
df["Date_Time"] = pd.to_datetime(df_time, format="%Y%B%d%H%M%S")
print(df["Date_Time"])
这打印:
0 2019-04-11 16:23:27
1 2019-04-11 16:24:27
Name: Date_Time, dtype: datetime64[ns]
推荐阅读
- python - 如何在 Python 中从文本文件创建文件夹
- javascript - 装饰器不支持 Angular 6 Prod 函数调用,但调用了“..Module”
- c# - 我如何打开表单并通过一个按钮将其关闭
- angular - Angular 6 路由参数
- javascript - 样式显示 none 未在函数中触发
- android - 单击时如何在 MP 饼图中获取 String [] 元素?
- jquery - 无法为 iframe 使用可拖动的 jQuery UI
- jenkins - 通过Jenkins TestComplete 测试参数
- spring - 春季使用@Transactional注解的最佳实践
- gitlab-ci - 在合并请求期间和合并后运行 GitlabCI