Сюжет для группы, затем для группы - PullRequest
0 голосов
/ 18 сентября 2018

Привет, я пытаюсь построить категориальные данные, которые описание :

data_df = pd.DataFrame({'Date': ['2018-09-14 00:00:22',
                                '2018-09-14 00:01:46',
                                '2018-09-14 00:01:56',
                                '2018-09-14 00:01:57',
                                '2018-09-14 00:01:58',
                                '2018-09-14 00:02:05'],
                        'userID': [33, 33, 33, 20, 20, 20],
                        'device': ['LIGHT', 'LIGHT', 'FAN', 'LIGHT', 'FAN', 'FAN'],
                        'description': ['ON', 'DIM', 'ON', 'ON', 'ON', 'OFF']})

data_df

Я хочу построить их, сгруппировав 'device' , но перед этим я хочу разделить по строкам 'userID' так, чтобы они разделялись 'userID' и каждый линейный график сгруппированы по имени 'device' .

Я также попытался сгруппировать и построить график, но там говорится, что мое описание не является числовым, поскольку оно категориально. Дата - это ось X, а описание - как ось Y.

1 Ответ

0 голосов
/ 18 сентября 2018

Похоже, вы пытаетесь построить группы description из userID и device с течением времени.Очевидно, что description необходимо преобразовать в числовую переменную, поэтому я взял на себя право кодировать ON как 1, DIM как 0.5 и OFF как 0. Следующий код должен решить вашу проблему.

data_df['Date'] = pd.to_datetime(data_df['Date'])

def desc_num(x):
    if x == 'ON':
        return 1
    elif x == 'DIM':
        return 0.5
    else:
        return 0

data_df['desc_num'] = data_df['description'].apply(desc_num)    

## Creating groups of `userID` and `device`
groups = data_df.groupby(['userID', 'device'])

for g in groups:
    plt.plot(g[1]['Date'], g[1]['desc_num'])
    plt.xlabel('Time')
    plt.ylabel('description Status')
    plt.title('Time Series of userID: {0}, for device: {1}'.format(g[1]['userID'][0], g[1]['device'][0]))
    plt.show()
    plt.close()

Вывод (вы должны увидеть такой график для каждой подгруппы):

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...