У меня есть большой набор данных, который выглядит так:
Year Month Day Hour Count Value
2017 1 1 1 59 0
.. .. .. .. .. ..
2011 12 29 23 60 12
Я пытаюсь использовать Pandas для генерации средних значений для столбца Значение за тот же месяц, день и час.
Я использовал это в прошлом:
df = pd.read_csv('pathtofile/values.csv')
df1 = df.groupby([df.Month,df.Day,df.Hour]).mean()
Однако новый df1 не будет усреднять столбец «Значение», однако он обеспечивает среднее значение для столбца «Количество и год» (которые меня не интересуют). Я думаю, что это как-то связано с данными в столбце Значение, так как большинство значений равны нулю. Я пытался заменить все нулевые значения нулевыми, однако безрезультатно.
Что-то мне не хватает?
2 ответа
Пытаться
df['Value'] = df['Value'].apply(pd.to_numeric, errors='coerce')
df.groupby(['Month', 'Day', 'Hour']).agg({'Value': np.mean})
Я смог запустить код, как и ожидалось.
Я сделал свой собственный тестовый файл под названием «values.txt» и выглядел как
Year,Month,Day,Hour,Count,Value
2017,1,1,1,59,0
2016,1,1,1,45,12
2014,2,3,4,34,43
2013,1,1,1,12,56
Затем я вошел
>>> import pandas as pd
>>> df = pd.read_csv('values.txt')
>>> df
Year Month Day Hour Count Value
0 2017 1 1 1 59 0
1 2016 1 1 1 45 12
2 2014 2 3 4 34 43
3 2013 1 1 1 12 56
И наконец я достиг результата
>>> df1 = df.groupby(['Month', 'Day', 'Hour'])
>>> df1['Value'].mean()
Month Day Hour
1 1 1 22.666667
2 3 4 43.000000
Name: Value, dtype: float64
Я думаю, что я согласен с Полом H. Вы должны проверить, является ли столбец строкой. Как и у меня есть успех с:
>>> df1 = df.groupby(['Month', 'Day', 'Hour']).mean()
>>> df1
Year Count Value
Month Day Hour
1 1 1 2015.333333 38.666667 22.666667
2 3 4 2014.000000 34.000000 43.000000
Можете ли вы редактировать вывод при печати df1?
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.