我有一个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)
答案 0 :(得分:0)
如果你想要一个系列作为回归,那么你只需要调用apply
而不是直接调用该函数
hour.apply(func)