Индексация кадров данных Pandas и несовпадение dateTime и DatetimeIndex

У меня есть датафрейм pandas, и я разделил его по значениям одного из столбцов. Теперь я хотел бы использовать команду dataFrame resample("W"). Asfreq(). Plot(), но найти несовпадение индекса и данных. Вот выдающийся код:

import pandas as pd

df = pd.read_csv(infile, parse_dates=True) 
df.head()

        date    day.of.week car.count weather   cloud.indicator
0   2010-01-01  Friday      101       0.1       clear
1   2010-01-02  Saturday    34        0.2       cloudy
2   2010-01-03  Sunday      113       0.4       clear
3   2010-01-04  Monday        5       0.6       cloudy
4   2010-01-05  Tuesday     124       0.1       clear  

df_cloudy = df[df['cloud.indicator'] == 'cloudy']

start = datetime.datetime.strptime("2010-01-01", "%Y-%m-%d")
date_list = [start + relativedelta(days=x) for x in range(0,len(df))]
df['index'] =date_list
df.set_index(['index'], inplace=True)
df.index.name=None
df.head()

            date        day.of.week car.count   weather cloud.indicator
2010-01-01  2010-01-01  Friday      101 0.1 clear
2010-01-02  2010-01-02  Saturday    34  0.2 cloudy
2010-01-03  2010-01-03  Sunday      113 0.4 clear
2010-01-04  2010-01-04  Monday      5   0.6 cloudy
2010-01-05  2010-01-05  Tuesday     124 0.1 clear

start = datetime.datetime.strptime("2010-01-02", "%Y-%m-%d")
date_list = [start + relativedelta(days=x) for x in range(0,len(df_cloudy))]
df_cloudy['index'] = date_list
df_cloudy.set_index(['index'], inplace=True)
df_cloudy.index.name=None
df_cloudy.head()

            date        day.of.week car.count   weather cloud.indicator
2010-01-02  2010-01-02  Saturday    34          0.2     cloudy
2010-01-03  2010-01-04  Monday       5          0.6     cloudy
2010-01-04  2010-01-08  Friday      67         -0.3     cloudy
2010-01-05  2010-01-09  Saturday    89          0.2     cloudy
2010-01-06  2010-01-14  Thursday    24          0.6     cloud

затем

df['car.count'].resample("W").asfreq().plot()

сюжеты хорошо, но

df_cloudy['car.count'].resample("W").asfreq().plot()

только заговоры до 2012-10-17, когда это должно заговорить до 2016-06-30.

Спасибо!

0 ответов

Другие вопросы по тегам