'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)
谢谢大家
我正在尝试计算周末的平均温度。所以我将日期对象转换为日期时间,并在创建工作日列之后。但是当我尝试计算平均温度时它失败并出现此错误 '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)
谢谢大家