我正在尝试标记在时间序列数据集中重复出现的特定时间段。我在np.where()中使用between_time()。它返回一个NaN值。
我遗漏了什么?
import pandas as pd
import numpy as np
data_df = pd.read_csv("data.csv")
data_df['Datetime'] = pd.to_datetime(data_df['Date'] + ' ' + data_df['Time'])
data_df = data_df.set_index('Datetime')
data_df['label'] =pd.Series(np.where(data_df['Time'].between_time('16:00','9:00'), "time1", "time2"))
data_df.head()
发布于 2019-05-24 09:28:30
还有一种使用apply
的替代解决方案,它可能有点棘手,但可以完成工作
df['Label'] = df['time'].apply(lambda x : 'time1' if x < '09:00:00' and x > '06:00:00' else 'time2')
print(df[df['Label']=='time1'].head()) #show time1 values
https://stackoverflow.com/questions/56284325
复制相似问题