如何删除列中的日期信息,只需保留时间

lse*_*ohn 6 python pandas

我正在使用pandas数据帧.有一个特定的列有时间信息.

原始数据喜欢这样:

5:15am
5:28am
6:15am
Run Code Online (Sandbox Code Playgroud)

所以我需要将原始数据转换为datetime格式:

format = '%I:%M%p'
dataset['TimeStamp'] = pd.to_datetime(dataset['TimeStamp'],format)
Run Code Online (Sandbox Code Playgroud)

但是,我得到了:

2014-07-04 05:15:00
2014-07-04 05:28:00
2014-07-04 06:15:00
Run Code Online (Sandbox Code Playgroud)

我不想要年份和日期信息,只想要时间.我该如何删除它.谢谢.

Woo*_*ide 9

以下内容将您拥有的内容转换为datetime.time()对象:

dataset['TimeStamp'] = pd.Series([val.time() for val in dataset['TimeStamp']])
Run Code Online (Sandbox Code Playgroud)

产量

  TimeStamp
0  05:15:00
1  05:28:00
2  06:15:00
Run Code Online (Sandbox Code Playgroud)

  • 更好地做``pd.DatetimeIndex(dateset ['TimeStamp']).时间``相同的结果虽然 (3认同)

EdC*_*ica 6

从版本开始,0.17.0您可以执行

dataset['TimeStamp'].dt.time
Run Code Online (Sandbox Code Playgroud)

对于低于的版本0.17.0

您可以只调用apply并访问timedatetime对象上的函数,像这样最初创建列,而无需进行后处理:

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
Run Code Online (Sandbox Code Playgroud)