Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在H2O框架中查找小时_Python_H2o - Fatal编程技术网

Python 在H2O框架中查找小时

Python 在H2O框架中查找小时,python,h2o,Python,H2o,我试图在格式为“hhmmss”的列中查找小时,即“90205”,其中9表示小时。有些行可能不包含秒数,因此它可以是“902”,我仍然需要得到“9”。 列的示例如下所示: REQ\u时间 195426 508 140315 141432 203344 214103 63202 101807 110730 115052 我可以在常规数据帧中这样做: df["DATE"]=pd.to_datetime(df.REQ_DATE, format='%Y%m%d') df["TIME"]=df["REQ_T

我试图在格式为“hhmmss”的列中查找小时,即“90205”,其中9表示小时。有些行可能不包含秒数,因此它可以是“902”,我仍然需要得到“9”。 列的示例如下所示:

REQ\u时间
195426
508
140315
141432
203344
214103
63202
101807
110730
115052

我可以在常规数据帧中这样做:

df["DATE"]=pd.to_datetime(df.REQ_DATE, format='%Y%m%d')
df["TIME"]=df["REQ_TIME"].apply(lambda x: str(x).zfill(6))
df['DATE_TIME']=df[['REQ_DATE','TIME']].apply(lambda x : '{} {}'.format(x[0],x[1]), axis=1)
df['DATE_TIME']=pd.to_datetime(df.DATE_TIME,infer_datetime_format=True)
df["HOUR"]=df.DATE_TIME.dt.hour
df['YEAR'] = df.DATE.dt.year
df['MONTH'] = df.DATE.dt.month
df['DAY'] = df.DATE.dt.day
df['DAY_OF_WEEK']=df.DATE.dt.dayofweek

但是我的数据在一个框架中,所以我不能使用常规的python方法。我也不想将其转换为数据帧,因为这需要很长时间。如何在帧中执行此操作?

如果您的请求时间字段始终为6位数字,即始终为左右零填充,则此操作会变得更容易。例如,您可以使用
gsub
仅获取前两个字符

或者,如果它总是在右边加零(即缺少时附加“00”秒),并且作为数字字段导入,则可以除以10000,然后使用
floor

(请参阅python API中的H2OFrames上可用的操作。)

但在您的情况下,我会下载该专栏,用python进行复杂的操作,然后导入一个新的H2O框架,其中只包含该专栏。给它一个列名
“hours”
。然后使用将新列连接到现有h2o框架


(另一种看待这个问题的方式是,您问题的第一行不准确,因为它不是“hhmmss”格式,而是“hmm”、“hhmm”、“hmmss”和“hhmmss”的混合体。)所有这些都集中在一列中。一旦你这样描述它,你就会发现你有一个数据问题。就我个人而言,我会研究如何在数据收集时解决这个问题。然后,向前看,如果你看到一个不完全是6位数字的时间戳,你马上就会知道你有坏数据。)

如果您的REQ_时间字段始终为6位数字,即始终为左右零填充,这将变得容易得多。例如,您可以使用
gsub
仅获取前两个字符

或者,如果它总是在右边加零(即缺少时附加“00”秒),并且作为数字字段导入,则可以除以10000,然后使用
floor

(请参阅python API中的H2OFrames上可用的操作。)

但在您的情况下,我会下载该专栏,用python进行复杂的操作,然后导入一个新的H2O框架,其中只包含该专栏。给它一个列名
“hours”
。然后使用将新列连接到现有h2o框架


(另一种看待这个问题的方式是,您问题的第一行不准确,因为它不是“hhmmss”格式,而是“hmm”、“hhmm”、“hmmss”和“hhmmss”的混合体。)所有这些都集中在一列中。一旦你这样描述它,你就会发现你有一个数据问题。就我个人而言,我会研究如何在数据收集时解决这个问题。然后,向前看,如果你看到一个时间戳不是精确的6位数字,你会立即知道你有坏数据。)

如果你调用.as_data_frame会发生什么()在H2OFrame中,然后使用上面描述的方法?我可以这样做,但转换需要大量的时间和内存。因此,我正在寻找本机方法来完成基本任务,同时使用H2OFrame。如果调用。as_data_frame()会发生什么情况在你的H2O框架中,然后使用你上面描述的方法?我可以这样做,但转换需要大量的时间和内存。因此,我正在寻找原生方法来完成使用H2O时的基本任务