Не в состоянии понять использование .mode () в Python - PullRequest
0 голосов
/ 25 октября 2018

У меня есть требование, где мне нужно выяснить самый популярный стартовый час.Ниже приведен код, который помог мне найти правильное решение.

import time
import pandas as pd
import numpy as np

# bunch of code comes
# here
# that help in reaching the following steps

df = pd.read_csv(CITY_DATA[selected_city])

# convert the Start Time column to datetime
df['Start Time'] = pd.to_datetime(df['Start Time'])

# extract hour from the Start Time column to create an hour column
df['hour'] = df['Start Time'].dt.hour

# extract month and day of week from Start Time to create new columns
df['month'] = df['Start Time'].dt.month

df['day_of_week'] = df['Start Time'].dt.weekday_name

# find the most popular hour
popular_hour = df['hour'].mode()[0]

Вот пример o / p, который я получаю, когда пытаюсь выполнить этот запрос

"print (df ['hour']) "

0         15
1         17
2          8
3         13
4         14
5          9
6          9
7         17
8         16
9         17
10         7
11        17
Name: hour, Length: 300000, dtype: int64

o / p, которое я получаю, когда использую

print (type (df ['hour')]))

<class 'pandas.core.series.Series'>

Значение самого популярного начального часа хранится в Popular_hour, который равен "17" (это правильное значение)

Однако яне в состоянии понять часть .mode () [0]

Что делает этот .mode () и почему [0]?

И будет ли такая же концепциярассчитать популярный месяц и популярный день недели также независимо от их типа данных

1 Ответ

0 голосов
/ 25 октября 2018

mode возвращает серию:

df.mode()
0    17
dtype: int64

Исходя из этого, вы берете первый элемент, вызывая

df.mode()[0]
17

Обратите внимание, что серия всегда возвращается, а иногда и при ее наличии.это несколько значений для режима, все они возвращаются:

pd.Series([1, 1, 2, 2, 3, 3]).mode()
0    1
1    2
2    3
dtype: int64

Вы все равно берете первое значение каждый раз и отбрасываете остальные.Обратите внимание, что при возврате нескольких режимов они всегда сортируются.

Подробнее см. Документацию по mode.

...