Python заменить строковые данные - PullRequest
0 голосов
/ 06 июня 2018

Я новичок в Python, занимаюсь простой очисткой данных.

Я застрял в этой проблеме: у меня есть кадр данных:

  datetime
1/1/2012 00:05 
1/1/2012 00:10 
1/1/2012 00:15
1/1/2012 00:20
1/1/2012 00:25
1/1/2012 00:30

... продолжающийся с 5-минутной периодичностью до конца года.

Япытаясь изменить 5 непрерывных строк на значение каждой 6-й строки.

По сути, это должно выглядеть так:

1/1/2012 00:30 
1/1/2012 00:30 
1/1/2012 00:30 
1/1/2012 00:30 
1/1/2012 00:30 
1/1/2012 00:30 
1/1/2012 01:00 
1/1/2012 01:00 
1/1/2012 01:00 
1/1/2012 01:00 
1/1/2012 01:00 
1/1/2012 01:00 

Как я могу это сделать?Спасибо

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Настройка

df = pd.DataFrame({'datetime': ['1/1/2012 00:05', '1/1/2012 00:10', '1/1/2012 00:15', '1/1/2012 00:20', '1/1/2012 00:25', '1/1/2012 00:30', '1/1/2012 00:35']})

pd.to_datetime с dt.ceil

df['datetime'] = pd.to_datetime(df['datetime']).dt.ceil('30min')

                 date
0 2012-01-01 00:30:00
1 2012-01-01 00:30:00
2 2012-01-01 00:30:00
3 2012-01-01 00:30:00
4 2012-01-01 00:30:00
5 2012-01-01 00:30:00
6 2012-01-01 01:00:00
0 голосов
/ 06 июня 2018

Вы можете перейти с обозначением среза, например,

>>> spam = tuple(range(30))
>>> spam
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
>>> spam[::6]
(0, 6, 12, 18, 24)
>>> spam[::10]
(0, 10, 20)
>>> spam[::5]
(0, 5, 10, 15, 20, 25)
>>> spam[1::5]
(1, 6, 11, 16, 21, 26)
>>> spam[2::5]
(2, 7, 12, 17, 22, 27)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...