Конвертировать время эпохи в форматированную строку даты в панде - PullRequest
0 голосов
/ 04 мая 2018

У меня есть DataFrame с меткой времени эпохи, и я хочу создать новый столбец с форматированной строкой даты.

index   timestamp
0       1456407930
1       1456407945
2       1456407961
3       1456407977
4       1456407992
5       1456408008
6       1456408024
7       1456408040
8       1456408055
9       1456408071
10      1456408087
11      1456408102

Сначала я успешно преобразовал метку времени в формат даты и времени, используя

data['date_num'] = mdate.epoch2num(data['timestamp'])

Но я не нашел функции для получения нового столбца с форматированной датой (such as “%Y-%m-%d”).

Буду признателен за любые идеи? Патрисио

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Укажите unit='s' с pd.to_datetime. Затем используйте pd.Series.dt.strftime.

df['date'] = pd.to_datetime(df['timestamp'], unit='s')\
               .dt.strftime('%Y-%m-%d')

print(df)

    index   timestamp        date
0       0  1456407930  2016-02-25
1       1  1456407945  2016-02-25
2       2  1456407961  2016-02-25
3       3  1456407977  2016-02-25
4       4  1456407992  2016-02-25
5       5  1456408008  2016-02-25
6       6  1456408024  2016-02-25
7       7  1456408040  2016-02-25
8       8  1456408055  2016-02-25
9       9  1456408071  2016-02-25
10     10  1456408087  2016-02-25
11     11  1456408102  2016-02-25
0 голосов
/ 04 мая 2018

Вы можете использовать метод map, передав в качестве аргумента выражение lambda.

df['new_column'] = df['timestamp'].map(lambda val: datetime.datetime.fromtimestamp(val).strftime('%Y-%m-%d'))

выход

    timestamp  new_column
0  1456407930  2016-02-25
1  1456407945  2016-02-25
-------------------------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...