我正在使用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)
我不想要年份和日期信息,只想要时间.我该如何删除它.谢谢.
以下内容将您拥有的内容转换为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)
从版本开始,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)