python - 如何在python 3中的变量中将日期转换为小时和分钟?
问题描述
我有一个数据集,其日期格式如下2021-06-18 23:30:00
,python 将其作为字符读取。我想创建一个只包含日期的小时和分钟的变量。这是我尝试过的,没有有用的结果:
from datetime import datetime
df["hours"] = datetime.strptime(df["Date"], '%Y-%m-%d %H:%M:%S').strftime('%H:%M')
上面的代码给了我一个错误。
在 R 中,这可以使用
df$hours <- format(strptime(df$Date, "%Y-%m-%d %H:%M:%S"), "%H:%M")
我也尝试在 python 上做同样的事情,但同样没用
df["hours"] = format(datetime.strptime(df["Date"],"%Y-%m-%d %H:%M:%S"), "%H:%M")
两个python代码都给我以下错误:
TypeError: strptime() argument 1 must be str, not Series
这是我的数据框
df.head()
Date Open High Low Close Volume
0 2006-04-13 10:00:00 1921.75 1922.00 1918.00 1918.25 11782
1 2006-04-13 10:30:00 1918.25 1931.75 1918.00 1931.00 39744
2 2006-04-13 11:00:00 1931.25 1934.00 1929.00 1930.25 34385
3 2006-04-13 11:30:00 1930.50 1932.00 1928.50 1931.25 13539
4 2006-04-13 12:00:00 1931.25 1932.25 1928.25 1928.75 10045
解决方案
您已将整个系列作为参数传递给.strptime
.
这是一个最小的、可重现的示例,它将函数应用于系列的每个成员:
import pandas as pd
df = pd.DataFrame(['2021-06-18 23:30:00','2021-06-19 01:02:03'],columns=['Date'])
print(df)
print()
df['hours'] = df['Date'].apply(lambda x: datetime.strptime(x,'%Y-%m-%d %H:%M:%S').strftime('%H:%M'))
print(df)
输出:
Date
0 2021-06-18 23:30:00
1 2021-06-19 01:02:03
Date hours
0 2021-06-18 23:30:00 23:30
1 2021-06-19 01:02:03 01:02
推荐阅读
- c# - 使用 C# 运行带有关键字 GO 的 .sql 语句?
- apache-spark - 如果在 S3 的镶木地板文件中发现同一列的数据类型不同,AWS Glue 作业会在 Redshift 中创建新列
- python-3.x - 获取 ValueError:在尝试计算 KNN 分数时没有足够的值来解包(预期为 6,得到 5)
- python - 在不同的数据维度上评估模型
- javascript - 无法使用按钮添加 DIV 元素
- python - 捕获有效的逗号分隔数字 python 正则表达式
- java - Spring Boot 中嵌入 Flyway 的许可证是什么
- c# - 从类调用函数时抛出 NullObjectReference
- c# - Entity Framework Core:可能导致循环或多个级联路径
- django - 无法在 django 模型中向 TimeField 添加时间 [
]