ValueError:试图获得一个空序列的argmax -试图从数据帧中获得最常见的一天



当我试图在我拥有的数据帧中获得最常见的日期时,我得到这个错误

ValueError: attempt to get argmax of a empty sequence

这是我添加到数据框架

的列
df['day_of_week'] = df['Start Time'].dt.weekday

这是有错误的代码

com_day_num = df['day_of_week'].value_counts().idxmax()
com_day_text = 'N/A'
if com_day_num == 0:
com_day_text = 'monday'
if com_day_num == 1:
com_day_text = 'tuesday'
if com_day_num == 2:
com_day_text = 'wednesday'
if com_day_num == 3:
com_day_text = 'thursday'
if com_day_num == 4:
com_day_text = 'friday'
if com_day_num == 5:
com_day_text = 'saturday'
if com_day_num == 6:
com_day_text = 'sunday'

most_com_day= com_day_text
print("Most Common Day of Week: ", most_com_day)

注意idxmax只返回列中第一次出现的max值。你可以有多个出现,所以上面的代码不会返回所有的值。

dates['day_of_week'] = dates['DateTime'].dt.weekday
newdf=pd.DataFrame(dates['day_of_week'].value_counts())
list(newdf.iloc[np.where(dates['day_of_week'].value_counts()== dates['day_of_week'].value_counts()).max())].index)

试试这个:

import calendar
import datetime
def find_max_weekdays(df):
dates=pd.DataFrame(df.index)
dates['day_of_week'] = dates['DateTime'].dt.weekday
newdf=pd.DataFrame(dates['day_of_week'].value_counts())
d=dict(zip(calendar.day_name,range(7)))
max_day=list(newdf.iloc[np.where(dates['day_of_week'].value_counts()==(dates['day_of_week'].value_counts()).max())].index)
res = dict((v,k) for k,v in d.items())
for i in max_day:
print(res[i])
find_max_weekdays(df)

最新更新