python - 将多列组合为单个日期时间的最佳方法是什么

标签 python pandas datetime python-datetime

这是我不时回过头来问的问题。我有一个数据集,其中多个列(还有其他列,这些只是与问题相关的列)用于指示日期和时间。在将它们从 float 转换为 int 之后,我现在有:

year    mo      dy  hr min sec Valid Mag
1234    1886    9   1   2   51  4.0 7.3
1286    1893    6   4   2   27  4.0 7.0
1329    1897    8   5   0   10  4.0 7.7
1366    1901    8   9   9   23  4.0 7.2
1368    1901    8   9   18  33  4.0 7.4

在不仅仅包含与日期和时间相关的列的 DataFrame 中,将其转换为 DateTime 的最清晰、最惯用的方法是什么?

我在另一个项目中使用了这个:

sun['Date'] = sun['Year'].map(str)+ '-' + sun['Month'].map(str) + '-' + sun['Day'].map(str)
pd.to_datetime(sun['Date'], utc=False)

虽然这行得通,但我认为肯定有更好、更通用的方法。具体来说,我希望将相关字段合并到 DateTime 中,但是,数据框中还有其他字段。我在 SQL 中看到了对此的良好响应,但这不是我要找的。

编辑:我收到了一些关于日期和时间的 DataFrame 的可靠答案。但是,问题是所有结果都导致相同的错误“ValueError:长度不匹配:预期轴有 19 个元素,新值有 6 个元素”,所以我添加了几个额外的列。

最佳答案

然后更改列名 pd.to_datetime

df.columns = ['year','month','day','hour','minute','second']
out = pd.to_datetime(df)
Out[185]: 
1234   1886-09-01 02:51:00
1286   1893-06-04 02:27:00
1329   1897-08-05 00:10:00
1366   1901-08-09 09:23:30
1368   1901-08-09 18:33:45
dtype: datetime64[ns]

关于python - 将多列组合为单个日期时间的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66539940/

相关文章:

python - 从单元格中删除字符并在 python pandas 中将剩余的 float 除以 2

python - 使用 http put 方法的 webapp2 有什么好的工作示例吗?

python - 如何解决纳秒越界问题

python - 重新采样 ('W' )奇怪的结果

r - 将 %B.%Y 转换为 R 中的日期返回 NA

python - 将 Hessian 矩阵定义为零

python - 仅使用 python argparse 创建基于命令行的应用程序

python - 查找列中特定字符串的出现次数

python - 将数据框行转换为 Python 集

c# - 在 .NET 中获取当前文化日名称