Pandas dataframe: изменить временную метку на UNIX - PullRequest
0 голосов
/ 02 августа 2020

Я хотел бы преобразовать свой столбец timestamp из datetime в UNIX.

import time
import datetime
import pandas as pd

file = 'input.csv'
colnames=['number', 'timestamp'] 
df = pd.read_csv(file, header=0)

print(df.head())
   number            timestamp
0       0  2019-01-03 08:55:05
1       1  2019-01-06 03:24:25
2       2  2019-01-09 04:25:44
3       3  2019-01-10 06:52:53
4       4  2019-01-19 03:26:28

Python скрипт, который работает для одного значения:

time.mktime(datetime.datetime.strptime( TIMESTAMPVALUE , "%Y-%m-%d %H:%M:%S").timetuple())

Я хотел бы сделать это за один шаг для всего столбца без необходимости перебирать каждое значение.

1 Ответ

1 голос
/ 02 августа 2020

Чтобы преобразовать столбец в datetime, вы можете использовать параметр parse_dates из read_csv

In [9]: df = pd.read_csv("a.csv", parse_dates=["timestamp"])
In [10]: df
Out[10]:
            timestamp
0 2019-01-03 08:55:05
1 2019-01-06 03:24:25
2 2019-01-09 04:25:44
3 2019-01-10 06:52:53
4 2019-01-19 03:26:28

In [11]: (df["timestamp"] - pd.Timestamp("1970-01-01")) // pd.Timedelta('1s')
Out[11]:
0    1546505705
1    1546745065
2    1547007944
3    1547103173
4    1547868388
Name: timestamp, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...