'Series' 对象在平均温度计算中不可调用

'Series' object is not callable in mean temperature calculation

我正在尝试计算周末的平均温度。所以我将日期对象转换为日期时间,并在创建工作日列之后。但是当我尝试计算平均温度时它失败并出现此错误 'Series' object is not callable

这是我的代码:

import numpy 
import pandas as pd 
import datetime as dt

def avg_weekend_temperature(df):
    df['DATEn'] = pd.to_datetime(df['DATEn'])
    df['weekday'] = df['DATEn'].dt.dayofweek()
    mean_temp_weekends = numpy.mean(df.meantempi[df.weekday == 5] or df.meantempi[df.weekday == 6])
    return mean_temp_weekends

avg_weekend_temperature(turnstile_weather)

TypeError                                 Traceback (most recent call last)
<ipython-input-39-a808adfb4fbd> in <module>()
      9     return mean_temp_weekends
     10 
---> 11 avg_weekend_temperature(turnstile_weather)

<ipython-input-39-a808adfb4fbd> in avg_weekend_temperature(df)
      5 def avg_weekend_temperature(df):
      6     df['DATEn'] = pd.to_datetime(df['DATEn'])
----> 7     df['weekday'] = df['DATEn'].dt.dayofweek()
      8     mean_temp_weekends = numpy.mean(df.meantempi[df.weekday == 5] or df.meantempi[df.weekday == 6])
      9     return mean_temp_weekends

TypeError: 'Series' object is not callable

IESn_hourly EXITSn_hourly   maxpressurei    maxdewpti   ... meanpressurei   fog rain    meanwindspdi    mintempi    meantempi   maxtempi    precipi thunder weekday
0   0   R001    2011-05-01  01:00:00    1   REGULAR 0.0 0.0 30.31   42.0    ... 30.27   0.0 0.0 5.0 50.0    60.0    69.0    0.0 0.0 6
1   1   R001    2011-05-01  05:00:00    5   REGULAR 217.0   553.0   30.31   42.0    ... 30.27   0.0 0.0 5.0 50.0    60.0    69.0    0.0 0.0 6
2   2   R001    2011-05-01  09:00:00    9   REGULAR 890.0   1262.0  30.31   42.0    ... 30.27   0.0 0.0 5.0 50.0    60.0    69.0    0.0 0.0 6
3   3   R001    2011-05-01  13:00:00    13  REGULAR 2451.0  3708.0  30.31   42.0    ... 30.27   0.0 0.0 5.0 50.0    60.0    69.0    0.0 0.0 6
4   4   R001    2011-05-01  17:00:00    17  REGULAR 4400.0  2501.0  30.31   42.0    ... 30.27   0.0 0.0 5.0 50.0    60.0    69.0    0.0 0.0 6
5 rows × 23 columns

你怎么看? 我认为问题出在 'or' 因为当我写:

numpy.mean(turnstile_weather.meantempi[turnstile_weather.weekday == 5])
67.020761245674734
numpy.mean(turnstile_weather.meantempi[turnstile_weather.weekday == 6])
63.573329051791369

问题是我不能把它们放在一起[=13​​=]

所以我终于找到了正确的答案。 这是代码:

import numpy
import pandas as pd
import datetime as dt

def avg_weekend_temperature(df):
    df['DATEn'] = pd.to_datetime(df['DATEn'])
    df['weekday'] = df['DATEn'].dt.dayofweek
    mean_temp_weekends = numpy.mean(df.meantempi[(df.weekday == 5) | (df.weekday == 6)])
    return mean_temp_weekends

avg_weekend_temperature(turnstile_weather)

谢谢大家