python - 使用 to_datetime 转换日期

标签 python datetime pandas

我对 Python 还是很陌生,所以请原谅我的基本问题。

重置 pandas 分组数据框后,我得到以下信息:

    year    month   pl
0   2010    1   27.4376
1   2010    2   29.2314
2   2010    3   33.5714
3   2010    4   37.2986
4   2010    5   36.6971
5   2010    6   35.9329

我想将年份和月份合并到 pandas 日期时间格式的一列中。

我正在尝试:

C3['date']=pandas.to_datetime(C3.year + C3.month, format='%Y-%m')

但它给了我这样的日期:

    year    month   pl  date
0   2010    1   27.4376 1970-01-01 00:00:00.000002011

正确的做法是什么?谢谢。

最佳答案

如有必要,您需要转换为 str,然后 zfill 月份列并将其以有效格式传递给 to_datetime:

In [303]:
df['date'] = pd.to_datetime(df['year'].astype(str) + df['month'].astype(str).str.zfill(2), format='%Y%m')
df

Out[303]:
   year  month       pl       date
0  2010      1  27.4376 2010-01-01
1  2010      2  29.2314 2010-02-01
2  2010      3  33.5714 2010-03-01
3  2010      4  37.2986 2010-04-01
4  2010      5  36.6971 2010-05-01
5  2010      6  35.9329 2010-06-01

如果不需要转换,那么下面的方法应该有效:

df['date'] = pd.to_datetime(df['year'] + df['month'].str.zfill(2), format='%Y%m')

您的尝试失败,因为它将值视为纪元时间:

In [305]:
pd.to_datetime(20101, format='%Y-%m')

Out[305]:
Timestamp('1970-01-01 00:00:00.000020101')

关于python - 使用 to_datetime 转换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34206921/

相关文章:

python - 我将如何使用 boto3 在 s3 存储桶上的 aws 文件上传成功响应?

Python多线程并没有提高速度

javascript - 什么 dateTime 格式与 .NET 和 JS 兼容而无需进一步重新格式化?

javascript - 为什么当我用另一个 Date 对象构造一个 JavaScript Date 对象时,生成的 Date 对象的 ms 部分被剥离了?

python - Pandas DataFrame 字符串引用显示选项

python - 无法将类型 'Timestamp' 与类型 'int' 进行比较

python - 将多个 csv 文件合并到 pandas 时在列中添加文件名 - Python

python - PyDev eclipse 显示编译错误红色标记,但运行正常?

python - 用于 Python 或 Ruby 的 Amazon Book API?

sql-server - SQL Server GROUP BY datetime 忽略小时分钟以及带有日期和总和值的选择