Добавьте 24 часа ко времени в Python - PullRequest
0 голосов
/ 08 марта 2019

Столбец данных со значениями в формате 'time' должен быть добавлен за 24 часа. Например: если 24 часа добавляются со значением 10:30:30, то ожидаемый результат составляет 34: 30: 30, фрагмент кода ниже (добавлен как изображение) генерирует «0 дней 10:30:30»

введите описание изображения здесь Может кто-нибудь, пожалуйста, направьте меня, чтобы не получить 0 дней, и чтобы получить 24 часа, чтобы добавить со значением часа.

1 Ответ

0 голосов
/ 08 марта 2019

Образец :

N = 10
np.random.seed(2019)
rng = pd.date_range('2017-04-03 15:30:20', periods=N, freq='13.3T')
df = pd.DataFrame({'vstime': np.abs(np.random.choice(rng, size=N) - 
                                 np.random.choice(rng, size=N))})

print (df)
    vstime
0 00:39:54
1 00:13:18
2 01:06:30
3 01:19:48
4 00:13:18
5 00:13:18
6 01:46:24
7 01:06:30
8 00:39:54
9 01:46:24

Вместо вашего кода используйте to_timedelta и добавьте Timedelta.

df['vstime'] = pd.to_timedelta(df['vstime']) + pd.Timedelta(24, unit='h') 

Форматирование timedelta не поддерживается в нативном режиме, поэтому требуется пользовательская функция:

def f(x):
    ts = x.total_seconds()
    hours, remainder = divmod(ts, 3600)
    minutes, seconds = divmod(remainder, 60)
    return ('{}:{:02d}:{:02d}').format(int(hours), int(minutes), int(seconds)) 

df['duration'] = df['vstime'].apply(f)
print (df)
           vstime  duration
0 1 days 00:39:54  24:39:54
1 1 days 00:13:18  24:13:18
2 1 days 01:06:30  25:06:30
3 1 days 01:19:48  25:19:48
4 1 days 00:13:18  24:13:18
5 1 days 00:13:18  24:13:18
6 1 days 01:46:24  25:46:24
7 1 days 01:06:30  25:06:30
8 1 days 00:39:54  24:39:54
9 1 days 01:46:24  25:46:24
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...