как я могу найти среднее значение столбца в РЕЗЮМЕ за дни недели с помощью panda

#python #excel #pandas #time-series

#python #excel #pandas #временные ряды

Вопрос:

Я пытаюсь найти среднее значение заказов в днях недели из файла csv пример файла Excel

 import pandas as pd
df = pd.read_excel("C:/Users/samer/Desktop/project/online_retail2.xlsx")

df['invoicedate']=pd.to_datetime(df['invoicedate'])
date = df["invoicedate"] = pd.to_datetime(df["invoicedate"]).dt.dayofweek
df["invoicedate"].mean()
 

Ответ, который я получил, был 3, но как долго длится список, и я не думаю, что это среднее значение дней недели, любая помощь?

пример ответа введите описание изображения здесь

Комментарии:

1. Если бы вы могли дать ссылку на файл csv, было бы легче найти проблему.

2. я не знаю, как отправить его в виде файла im sry

3. Ссылка на Google Sheet сделает tbh.

4. docs.google.com/spreadsheets/d/…

Ответ №1:

Вы подсчитали, что средний рабочий день ваших счетов-фактур равен «3», то есть четверг. Это звучит разумно.

Если вы хотите рассчитать среднее значение показателя по всем дням недели отдельно (например, среднюю сумму счета за понедельник, вторник, …), вам нужно использовать groupby, как здесь, но я не совсем уверен, что это то, что вы хотите, основываясь на вашем описании. Может быть, вы можете уточнить на примере желаемого результата?

Редактировать: если вам нужны средние заказы на будние дни, попробуйте это:

 import pandas as pd

df = pd.read_excel('./groupby_example.xlsx')
df['date'] = pd.to_datetime(df['date'])
df['weekday'] = df['date'].dt.dayofweek
df.groupby('weekday').mean()
 

Комментарии:

1. Лучший способ, которым я могу это описать, это то, что я хочу, чтобы все дни недели в резюме были усреднены в одно число, чтобы я мог его распечатать

2. что ж, я надеюсь, что это поможет вам: python import pandas as pd df = pd.read_excel("./groupby_example.xlsx") df['date'] = pd.to_datetime(df['date']) df["weekday"] = df['date'].dt.dayofweek df.groupby('weekday').mean() я снова добавлю это в свой первоначальный ответ, форматирование мне не нравится, извините.

3. просто небольшой вопрос, если я хочу, чтобы ответ был int, а не float, должен ли я просто добавить int в последний код?

4. добавление .astype('int32') должно сделать свое дело