Повторная выборка временных рядов с недельным интервалом в пандах выдает ошибку - PullRequest
0 голосов
/ 07 октября 2018

Я изучаю данные временных рядов (в python) и хотел преобразовать даты в недельный интервал с помощью панд, но он выдает следующую ошибку:

TypeError: Действительно только с DatetimeIndex, TimedeltaIndex или PeriodIndex, но получил экземпляр RangeIndex

Данные (date.csv):

install_date, user, mean_level 
2015-09-09, 1, 2
2015-09-11, 2, 2
2015-09-14, 3, 5
2015-09-14, 4, 6
2015-09-20, 5, 3
2015-09-25, 6, 3
2015-09-26, 7, 1
2015-09-27, 8, 1
2015-09-27, 9, 0
2015-09-29, 10, 0

Код:

import numpy as np
import pandas as pd

data = pd.read_csv('data/dates.csv', low_memory=False)

DateData = data.resample('W').sum().head()

print(DateData)

Пробовал пару вещейвокруг преобразования даты, но ничего не работает, и это все равно выдает ошибку.Вот что мне нужно:

Вывод:

install_date, user
2015-09-09, 3
2015-09-14, 12
2015-09-25, 40

Спасибо!Приветствия.

1 Ответ

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

Сначала преобразуйте столбец install_date в тип данных datetime, затем используйте resample, используя желаемое правило:

print(df)
  install_date   user   mean_level 
0   2015-09-09      1             2
1   2015-09-11      2             2
2   2015-09-14      3             5
3   2015-09-14      4             6
4   2015-09-20      5             3
5   2015-09-25      6             3
6   2015-09-26      7             1
7   2015-09-27      8             1
8   2015-09-27      9             0
9   2015-09-29     10             0

df['install_date'] = pd.to_datetime(df['install_date'])
df.dtypes()
install_date    datetime64[ns]
 user                    int64
 mean_level              int64
dtype: object

Метод 1: Использованиестолбец для повторной выборки

print(df.resample('7D',on='install_date').sum())

               user   mean_level 
install_date                     
2015-09-09       10            15
2015-09-16        5             3
2015-09-23       40             5

Метод 2: Установка типа данных даты и времени в качестве индекса и повторной выборки

df.set_index('install_date',inplace=True)
print(df.resample('7D').sum())

               user   mean_level 
install_date                     
2015-09-09       10            15
2015-09-16        5             3
2015-09-23       40             5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...