How to remove the date information in a column, ju

2020-02-14 01:33发布

I am using pandas dataframe. there is a specific column has time information.

the raw data likes this:

5:15am
5:28am
6:15am

so I need to convert the raw data into datetime format:

format = '%I:%M%p'
dataset['TimeStamp'] = pd.to_datetime(dataset['TimeStamp'],format)

However, I got:

2014-07-04 05:15:00
2014-07-04 05:28:00
2014-07-04 06:15:00

I don't want the year and date information, just want time. How can I remove it. Thanks.

标签: python pandas
6条回答
可以哭但决不认输i
2楼-- · 2020-02-14 02:13

The following will convert what you have to datetime.time() objects:

dataset['TimeStamp'] = pd.Series([val.time() for val in dataset['TimeStamp']])

Output

  TimeStamp
0  05:15:00
1  05:28:00
2  06:15:00
查看更多
▲ chillily
3楼-- · 2020-02-14 02:15

dataset['TimeStamp']=dataset['TimeStamp'].str.slice(11,18)

查看更多
Lonely孤独者°
4楼-- · 2020-02-14 02:23

Since version 0.17.0 you can just do

dataset['TimeStamp'].dt.time

For versions older than 0.17.0:

You can just call apply and access the time function on the datetime object create the column initially like this without the need for post processing:

In [143]:

dataset['TimeStamp'] = pd.to_datetime(dataset['TimeStamp'],format).apply(lambda x: x.time())
dataset
Out[143]:
  TimeStamp
0  05:15:00
1  05:28:00
2  06:15:00
查看更多
戒情不戒烟
5楼-- · 2020-02-14 02:23

Just use the datetime.time() function

datetime.time()
Return time object with same hour, minute, second and microsecond. tzinfo is None. See also method timetz().

This will return a datetime.time object and you can access the data with the time.hour time.minute and time.second attributes.

查看更多
干净又极端
6楼-- · 2020-02-14 02:26

your_date_df.dt.time

Lets say that your column with the date ans time is df['arrived_date']:

0   2015-01-06 00:43:00
1   2015-01-06 07:56:00
2   2015-01-06 11:02:00
3   2015-01-06 11:22:00
4   2015-01-06 15:27:00
Name: arrived_date, dtype: datetime64[ns]

Whith pandas, you just need to do:

df['arrived_time']=df['arrived_date'].dt.time 

The new column df['arrived_time'] will look like this:

0    00:43:00
1    07:56:00
2    11:02:00
3    11:22:00
4    15:27:00
Name: arrived_time, dtype: object

Observe that the new column, df['arrived_time'], is no longer a datetime64 type, the type of the column is just a pandas object

查看更多
家丑人穷心不美
7楼-- · 2020-02-14 02:32

There's a simpler way to do it using pandas, although most, if not all solutions are correct

df.TimeStamp = pd.to_datetime(df.TimeStamp).dt.strftime('%H:%M')
查看更多
登录 后发表回答