这是我不时回过头来问的问题。我有一个数据集,其中多个列(还有其他列,这些只是与问题相关的列)用于指示日期和时间。在将它们从 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 中看到了对此的良好响应,但这不是我要找的。p>
编辑:我收到了一些关于日期和时间的 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/