我是python和数据培训的初学者。目前正在开发一个虚拟出租车票价计算器数据框架,但为了获得更好的结果,我想将白天和夜间分开,以计算更好的票价
我目前拥有的代码:
d['time'] = pd.to_datetime(d['start']).dt.strftime('%H:%M')
for time in d['time']:
hourMin = time.split(":")
hour = int(hourMin[0])
mins = int(hourMin[1])
if hour >= 6 and hour <= 20:
if(hour == 18):
if(mins > 0):
dtime = '0'
else:
dtime = '1'
else:
dtime = '1'
else:
day_time = '0'
dtime[:10]
d['time'] = dtime
d.head()
当我运行此程序时,我收到此部件上的IndexError: list index out of range
错误mins = int(hourMin[1])
我真的很感激我能得到的任何帮助,因为我已经为此奋斗了4-5个小时
熊猫有一些很有前景的发声功能: pandas.DataFrame.between_time和pandas.DatetimeIndex.indexer_between_time
不幸的是,
between_time
返回的是数据帧,而不是布尔序列。因此与.loc
一起使用并不方便和
indexer_between_time
返回索引位置的整数数组。与.iloc
一起工作,但这对我们来说非常不舒服此外,它们都要求索引为DateTime类型
首先,一些示例数据:
添加一个新列,如果一行是
Daytime
或不是,该列将显示为True/False将索引设置为开始,日期时间列:
时间戳的边界是什么
正在创建匹配行的整数数组。您还可以将
include_start
和include_end
设置为具有打开或关闭的间隔我们能得到什么回报?与索引位置匹配的整数列表
我们现在可以使用它将第0列设置为
True
:使用
between_time
函数返回与条件匹配的数据帧:我也很想知道是否有更优雅的方法来使用
between_time
我觉得你把事情弄得太复杂了。您可以将列的
.time
与time
对象进行比较:因此,这将检查时间是否介于6:00和18:00(包括这两个时间段)之间,或者19:00(包括这两个时间段)和21:00(不包括这两个时间段)之间
这也将提高工作效率。例如:
您可以使用
.astype(int)
将其转换为int
:相关问题 更多 >
编程相关推荐