Python 将datetime对象从[HH:MM:ss]格式化为[HH:MM]

Python 将datetime对象从[HH:MM:ss]格式化为[HH:MM],python,pandas,datetime,dataframe,Python,Pandas,Datetime,Dataframe,我有一个带有4列(时间、T1、T2、T3)的pandasDataFrame,它们各自的值是使用定制的温度数据记录器在一天中获取的。Time列的格式为[HH:MM:ss],但出于打印目的,我想将其更改为[HH:MM](截断秒数)。有没有一个简单的方法来实现这一点 下面是我的代码:(使用Python 3.6) 更新: In [41]: df = pd.DataFrame({'Time': ['11:07:00','12:06:00','13:17:00'], 'Twall':[10,20,30]}

我有一个带有4列(时间、T1、T2、T3)的
pandas
DataFrame
,它们各自的值是使用定制的温度数据记录器在一天中获取的。
Time
列的格式为[HH:MM:ss],但出于打印目的,我想将其更改为[HH:MM](截断秒数)。有没有一个简单的方法来实现这一点

下面是我的代码:(使用Python 3.6)


更新:

In [41]: df = pd.DataFrame({'Time': ['11:07:00','12:06:00','13:17:00'], 'Twall':[10,20,30]}).set_index('Time')

In [42]: df
Out[42]:
          Twall
Time
11:07:00     10
12:06:00     20
13:17:00     30

In [43]: df.index = df.index.astype(str).str.rsplit(':',n=1).str[0]

In [44]: df
Out[44]:
       Twall
Time
11:07     10
12:06     20
13:17     30

演示(矢量化方法)-用于截断
datetime
dtype列中的秒数:

In [46]: df = pd.DataFrame(pd.date_range('2017-01-01', freq='99S', periods=10), columns=['date'])

In [47]: df
Out[47]:
                 date
0 2017-01-01 00:00:00
1 2017-01-01 00:01:39
2 2017-01-01 00:03:18
3 2017-01-01 00:04:57
4 2017-01-01 00:06:36
5 2017-01-01 00:08:15
6 2017-01-01 00:09:54
7 2017-01-01 00:11:33
8 2017-01-01 00:13:12
9 2017-01-01 00:14:51


In [49]: df['date'] = df['date'].values.astype('<M8[m]')

In [50]: df
Out[50]:
                 date
0 2017-01-01 00:00:00
1 2017-01-01 00:01:00
2 2017-01-01 00:03:00
3 2017-01-01 00:04:00
4 2017-01-01 00:06:00
5 2017-01-01 00:08:00
6 2017-01-01 00:09:00
7 2017-01-01 00:11:00
8 2017-01-01 00:13:00
9 2017-01-01 00:14:00
[46]中的
:df=pd.DataFrame(pd.date_范围('2017-01-01',freq='99S',periods=10),columns=['date']))
In[47]:df
出[47]:
日期
0 2017-01-01 00:00:00
1 2017-01-01 00:01:39
2 2017-01-01 00:03:18
3 2017-01-01 00:04:57
4 2017-01-01 00:06:36
5 2017-01-01 00:08:15
6 2017-01-01 00:09:54
7 2017-01-01 00:11:33
8 2017-01-01 00:13:12
9 2017-01-01 00:14:51

在[49]中:df['date']=df['date'].values.astype(“谢谢你的快速回复。一个问题:我一直收到一个关键错误:“时间”,我不确定为什么或者如何修复它。任何建议都将不胜感激。你真的有一个名为
Time
”的专栏吗?你想缩短秒数还是轮数?例如:11:34:31是变成11:34还是11:35?我对答案印象深刻,但看起来它们是正确的e针对您缺少发布的代码、数据或预期结果而努力工作-任何这些事情都会使您更有可能得到有用的答案。我已相应地更新了我的问题。使用您更新的代码,我得到以下错误:AttributeError:只能使用带字符串值的.str访问器(即推断的_类型为'string'、'unicode'或'mixed')@FrancodeJager,
print(df.index.dtype)
的输出是什么?
print(df.index.dtype)
的输出为
object
@FrancodeJager,
print(df.index[0].dtype)
?我得到以下输出:AttributeError:“datetime.time”对象没有属性“dtype”
In [41]: df = pd.DataFrame({'Time': ['11:07:00','12:06:00','13:17:00'], 'Twall':[10,20,30]}).set_index('Time')

In [42]: df
Out[42]:
          Twall
Time
11:07:00     10
12:06:00     20
13:17:00     30

In [43]: df.index = df.index.astype(str).str.rsplit(':',n=1).str[0]

In [44]: df
Out[44]:
       Twall
Time
11:07     10
12:06     20
13:17     30
In [46]: df = pd.DataFrame(pd.date_range('2017-01-01', freq='99S', periods=10), columns=['date'])

In [47]: df
Out[47]:
                 date
0 2017-01-01 00:00:00
1 2017-01-01 00:01:39
2 2017-01-01 00:03:18
3 2017-01-01 00:04:57
4 2017-01-01 00:06:36
5 2017-01-01 00:08:15
6 2017-01-01 00:09:54
7 2017-01-01 00:11:33
8 2017-01-01 00:13:12
9 2017-01-01 00:14:51


In [49]: df['date'] = df['date'].values.astype('<M8[m]')

In [50]: df
Out[50]:
                 date
0 2017-01-01 00:00:00
1 2017-01-01 00:01:00
2 2017-01-01 00:03:00
3 2017-01-01 00:04:00
4 2017-01-01 00:06:00
5 2017-01-01 00:08:00
6 2017-01-01 00:09:00
7 2017-01-01 00:11:00
8 2017-01-01 00:13:00
9 2017-01-01 00:14:00