python - 尝试将熊猫系列数据传递给 date_range 函数时,无法将字符串转换为时间戳错误
问题描述
我正在尝试将 pandas 系列数据传递给 date_range fun,但我遇到了错误,如何将字符串类型转换为 pandas 中的时间戳
import pandas as pd
import numpy as np
from pandas.tseries.offsets import CustomBusinessHour
from pandas.tseries.holiday import USFederalHolidayCalendar
data = {
'start': ['2019-08-23 00:01:46.697000',
'2018-10-29 19:01:10.887000',
'2018-10-22 17:42:24.467000'],
'end': ['2019-08-26 17::00.830000',
'2018-11-27 09:31:39.967000',
'2018-11-28 18:33:35.243000' ]
}
df = pd.DataFrame(data)
bh = CustomBusinessHour(calendar=USFederalHolidayCalendar(), start='00:01', end='23:59')
def f(x):
idx = pd.date_range(start=x.start, end=x.end, freq= bh)
mask = ~((idx.dayofweek == 0) & (idx.hour <= 7))
return len(idx[mask])
df['Hours_diff'] = df.apply(f, axis=1)
print(df.head(10))
文件“pandas/_libs/tslibs/timestamps.pyx”,第 748 行,在 pandas._libs.tslibs.timestamps.Timestamp 中。新 文件“pandas/_libs/tslibs/conversion.pyx”,第 288 行,在 pandas._libs.tslibs.conversion.convert_to_tsobject 文件“pandas/_libs/tslibs/conversion.pyx”,第 487 行,在 pandas._libs.tslibs。 conversion.convert_str_to_tsobject ValueError: ('无法将字符串转换为时间戳',你'发生在索引 0')
解决方案
IIUC,您需要在应用函数之前将日期列转换为日期时间试试这个:
pd.to_datetime(df['start'])
pd.to_datetime(df['end'])
bh = CustomBusinessHour(calendar=USFederalHolidayCalendar(), start='00:01', end='23:59')
def f(x):
idx = pd.date_range(start=x.start, end=x.end, freq= bh)
mask = ~((idx.dayofweek == 0) & (idx.hour <= 7))
return len(idx[mask])
df['Hours_diff'] = df.apply(f, axis=1)
print(df.head(10))
输出:
start end Hours_diff
0 2019-08-23 00:01:46.697000 2019-08-26 17:00:00.830000 34
1 2018-10-29 19:01:10.887000 2018-11-27 09:31:39.967000 426
2 2018-10-22 17:42:24.467000 2018-11-28 18:33:35.243000 574
推荐阅读
- c# - 监听 Firestore 数据库时如何保持控制台应用程序开启
- swift - 如何为不属于 tableView 但位于其下方的活动指示器设置约束
- javascript - 检查css类是否存在于reactjs中的本地module.css文件中
- c++ - std::multimap equal _range 和 C++20 std::views::values 不能很好地协同工作
- php - [Route: register] [URI: register] [Missing parameter: tenant] 缺少必需参数
- python - 用先知预测两组
- assembly - 在 dosbox 的 masm 中使用“LENGTHOF”
- python - ConversionError:无法将值转换为轴单位:Python matplotlib
- python - 如何从列表中输出表格
- php - 如何在laravel中显示无限的父子和子树数据