Как создать системную точку :: time_point из компонентов метки времени UTC (Y, M, D, ч, м, с, мс)

Более подход, основанный на использовании pandas, заключается в применении функции замены, как показано ниже:

def multiple_replace(dict, text):
  # Create a regular expression  from the dictionary keys
  regex = re.compile("(%s)" % "|".join(map(re.escape, dict.keys())))

  # For each match, look-up corresponding value in dictionary
  return regex.sub(lambda mo: dict[mo.string[mo.start():mo.end()]], text) 

После того, как вы определили функцию, вы можете применить ее к вашему фреймворку данных.

di = {1: "A", 2: "B"}
df['col1'] = df.apply(lambda row: multiple_replace(di, row['col1']), axis=1)
1
задан samwise 16 January 2019 в 22:05
поделиться

1 ответ

Самый простой и эффективный способ - использовать бесплатную библиотеку Ховарда Хиннанта с открытым исходным кодом, только для заголовков, с одним заголовком, дату / время :

#include "date/date.h"
...
using namespace date;
using namespace std::chrono;
int Y, M, D, h, m, s, ms;
...
system_clock::time_point tp = sys_days{year{Y}/M/D} + 
                              hours{h} + minutes{m} + seconds{s} + milliseconds{ms};

Все библиотека даты / времени делает для вас преобразование тройки Y / M / D в chrono::time_point<system_clock, days>. Тогда все остальное выражение - это C ++ 11 <chrono>.

библиотека даты / времени была включена в черновую спецификацию C ++ 20, так что, надеюсь, через несколько лет ваш код станет соответствующим стандарту, просто удалив #include "date/date.h" и using namespace date;.

Если по каким-либо причинам вы не можете использовать библиотеку даты и времени , то вы можете сами кодировать days_from_civil с помощью этой формулы общественного достояния.

0
ответ дан Howard Hinnant 16 January 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: