将pandas日期列转换为秒数

时间:2017-06-08 20:51:23

标签: python pandas datetime dataframe

我有一个多列的pandas数据帧,其中包含一列datetime64 [ns]数据。时间是HH:MM:SS格式。如何将此列日期转换为经过的秒数列?就像时间10:00:00以秒为单位表示36000.秒应该是float64类型格式。

示例数据列

Example data column

2 个答案:

答案 0 :(得分:2)

新答案
将文字转换为<input type="text" id="myInput" onkeyup="ContactsearchFX()" placeholder="Search for names.."> <table id="myTable"> <tr class="header"> <th style="width:60%;">Name</th> <th style="width:40%;">Number</th> </tr> <tr> <td>contact</td> <td>number</td> </tr> <tr> <td>contact</td> <td>number</td> </tr> <tr> <td>contact</td> <td>number</td> </tr>

Timedelta

旧答案

考虑数据框df['Origin Time(Local)'] = pd.to_timedelta(df['Origin Time(Local)']) df['Seconds'] = df['Origin Time(Local)'].dt.total_seconds()

df

从时间戳中减去最近一天并使用df = pd.DataFrame(dict(Date=pd.date_range('2017-03-01', '2017-03-02', freq='2H'))) Date 0 2017-03-01 00:00:00 1 2017-03-01 02:00:00 2 2017-03-01 04:00:00 3 2017-03-01 06:00:00 4 2017-03-01 08:00:00 5 2017-03-01 10:00:00 6 2017-03-01 12:00:00 7 2017-03-01 14:00:00 8 2017-03-01 16:00:00 9 2017-03-01 18:00:00 10 2017-03-01 20:00:00 11 2017-03-01 22:00:00 12 2017-03-02 00:00:00 total_secondstotal_seconds的属性。我们通过两个Timedelta系列之间的区别来获得一系列Timedeltas

Timestamps

将其放入新专栏

(df.Date - df.Date.dt.floor('D')).dt.total_seconds()
# equivalent to
# (df.Date - pd.to_datetime(df.Date.dt.date)).dt.total_seconds()

0         0.0
1      7200.0
2     14400.0
3     21600.0
4     28800.0
5     36000.0
6     43200.0
7     50400.0
8     57600.0
9     64800.0
10    72000.0
11    79200.0
12        0.0
Name: Date, dtype: float64

答案 1 :(得分:0)

它会起作用:

df['time'].dt.total_seconds()

问候