Python 将datetime对象从[HH:MM:ss]格式化为[HH:MM]
我有一个带有4列(时间、T1、T2、T3)的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]}
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