使用datetime pandas系列

时间:2018-04-02 19:17:49

标签: python pandas if-statement dataframe conditional

我有一个pandas数据帧,我想根据一天中的某些小时计算变量。我已经将日期作为整数从日期时间序列中拉出来了。当我在两个小时之间编写条件语句并执行我的脚本时,我收到警告"The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()"

当我在脚本中放入any()all()时,脚本会运行,但它不会计算两小时之间的值。我只是得到一个不符合条件的值。任何人都可以帮助我吗?

到目前为止,这是我的代码

METdata = pd.read_csv('C:\Schoolwork\GEOL 701s_HW1\MET_station\MET_Data_3.26_hourly.csv', infer_datetime_format = True, na_values = '', header = [1], skiprows = [2, 3], index_col = [0])
hour = METdata.index.hour

NET_rad_Wm2 = np.array(METdata['NR_Wm2_Avg'])
Nr = NET_rad_Wm2 * 0.0036
g_day = Nr * 0.1
g_night = Nr * 0.5

def func(hour):
    if ((hour > 8) and (hour < 17)):
        return g_night
    else:
        return g_day
g = func(hour)

1 个答案:

答案 0 :(得分:0)

如果你想要一个系列作为回归,那么你只需要调用apply而不是直接调用该函数

hour.apply(func)