Как объединить несколько строк временных меток и объектов в отдельные позиции для предварительной обработки данных? - PullRequest
0 голосов
/ 17 февраля 2019

Сообщество Hi Stack Overflow!

Как вы можете видеть на скриншоте ниже, у меня есть данные о преступлениях в моем районе, которые имеют несколько временных отметок и типы преступлений на каждый день.dataframe

Я пытаюсь создать дополнительный фрейм данных, объединяя временные метки той же даты, а также конвертируя и объединяя тип преступлений (тип = объект) в целочисленный формат.Следовательно каждый день будет позиция.Я также хочу добавить новый столбец, чтобы показать результаты предварительной обработки данных на основе количества преступлений в день.Моя цель - создать новый фрейм данных, как показано ниже:


                 <b>Crimes</b>   <b>Crime level</b>
    2018-01-01   7        High
    2018-01-02   3        Medium  
    2018-01-03   2        Low 

    ... and so on

Для столбца «Уровень преступности» я собирался использовать следующий код для результатов предварительной обработки данных:


    new_df['Crime level'] = np.where(abs(new_df['Crimes'])>5, 'High',
                            np.where(abs(new_df['Crimes'])>2,'Medium','Low'))

Каков наилучший подход для достижения всего этого?Будем весьма благодарны за любые советы и рекомендации!

1 Ответ

0 голосов
/ 17 февраля 2019

Этот вопрос не относится к столбцам, вы можете решить его, просто используя индекс.
Сначала сгруппируйте данные по каждому дню.

# I created a demo df
grouped = df.groupby(pd.Grouper(freq='D')).count()
print(grouped)
            CRIME
2019-01-01      2
2019-01-02      5
2019-01-03      20
2019-01-04      2
2019-01-05      1

Затем отрежьтеСтолбец CRIME на разных уровнях.

grouped['Crime level'] = pd.cut(grouped.CRIME, 
                                bins=[0,2,5,100], 
                                labels =["Low","Medium","High"])
print(grouped)

Операция pd.cut разрезает столбец CRIME на 3 интервала (0,2], (2,5], (5,100] и присваивает метки ["Low","Medium","High"] каждому интервалу.

            CRIME Crime level
2019-01-01      2         Low
2019-01-02      5      Medium
2019-01-03     20        High
2019-01-04      2         Low
2019-01-05      1         Low
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...