В настоящее время я использую Python и хочу сделать следующее:
Я получил фрейм данных pandas:
Time A B ... Z
2018-10-17 16:49:56 NaN NaN ... 16.28
2018-10-17 22:40:36 NaN 'String' ... NaN
2018-10-20 01:37:32 NaN NaN ... 25.00
2018-10-20 11:30:39 15.0 NaN ... NaN
2018-10-20 12:07:04 NaN NaN ... NaN
, и я хотел бы преобразовать его в нечто вроде этого:
Time A B ... Z
2018-10-17 16:49:56 NaN NaN ... 16.28
2018-10-17 22:40:36 NaN 'String' ... 16.28
2018-10-20 01:37:32 NaN 'String' ... 25.00
2018-10-20 11:30:39 15.0 'String' ... 25.00
2018-10-20 12:07:04 15.0 'String' ... 25.00
Если я всегда переношу значение в следующую строку, за исключением того, что в строке есть новый элемент.
Если я смогу это сделать, следующим шагом будет замена строки наплавающее значение, которое я могу сделать с df = df.replace('string', value)
и преобразовать время в число, которое содержит количество секунд t.hour * 3600 + t.minute * 60 + t.second
, будет моими первыми вариантами с модулем datetime
.В настоящее время я не уверен, что это лучший путь, потому что я знаю, что есть pandas.to_datetime
.
Time A B ... Z
2018-10-17 16:49:56 NaN NaN ... 16.28+0
2018-10-17 22:40:36 NaN value+0 ... 16.28+1
2018-10-20 01:37:32 NaN value+1 ... 25.00+0
2018-10-20 11:30:39 15.0 value+2 ... 25.00+1
2018-10-20 12:07:04 15.0 value+3 ... 25.00+2
Число столбцов и строк является переменным.
Моя идея могла быбыть, построить новый фрейм данных и извлекать и сравнивать данные со старым фреймом данных построчно, но я не знаю точно, как это сделать, и, возможно, есть более элегантный способ.
Вы можете мне помочь?