Python-将datetime列转换为秒
我有一个日期列(称为“时间”),其中包含天/小时/分钟等(timedelta)。我已经在数据框中创建了一个新列,我想将“Time”列转换为秒,并将其放入每行的新列中 有人有什么建议吗?我在互联网上所能找到的只是如何转换你的专栏,而不是创建一个新专栏然后再转换另一个专栏 提前谢谢你 我认为您需要: 样本:Python-将datetime列转换为秒,python,pandas,Python,Pandas,我有一个日期列(称为“时间”),其中包含天/小时/分钟等(timedelta)。我已经在数据框中创建了一个新列,我想将“Time”列转换为秒,并将其放入每行的新列中 有人有什么建议吗?我在互联网上所能找到的只是如何转换你的专栏,而不是创建一个新专栏然后再转换另一个专栏 提前谢谢你 我认为您需要: 样本: df = pd.DataFrame({'date1':pd.date_range('2015-01-01', periods=3), 'date2':pd.
df = pd.DataFrame({'date1':pd.date_range('2015-01-01', periods=3),
'date2':pd.date_range('2015-01-01 02:00:00', periods=3, freq='23H')})
print (df)
date1 date2
0 2015-01-01 2015-01-01 02:00:00
1 2015-01-02 2015-01-02 01:00:00
2 2015-01-03 2015-01-03 00:00:00
df['diff'] = df['date2'] - df['date1']
df['seconds'] = df['diff'].dt.total_seconds()
print (df)
date1 date2 diff seconds
0 2015-01-01 2015-01-01 02:00:00 02:00:00 7200.0
1 2015-01-02 2015-01-02 01:00:00 01:00:00 3600.0
2 2015-01-03 2015-01-03 00:00:00 00:00:00 0.0
如果需要转换为
int
:
df['diff'] = df['date2'] - df['date1']
df['diff'] = df['diff'].dt.total_seconds().astype(int)
print (df)
date1 date2 diff
0 2015-01-01 2015-01-01 02:00:00 7200
1 2015-01-02 2015-01-02 01:00:00 3600
2 2015-01-03 2015-01-03 00:00:00 0
假设数据帧的名称为
df
如果要创建具有秒数的新列,应执行以下操作:
df['newColumn'] = df['Time'].dt.total_seconds()
谢谢你曼纽尔:)投了赞成票!但是如果你的datetime列是索引,那么它就不起作用了。正是我所需要的:)。。。我花了这么多时间在谷歌上搜索,我不知道为什么我不马上去这里。我想这对我的学习过程有帮助。这是错误的AttributeError:“DatetimeProperties”对象没有属性“total_seconds”@krish-您必须使用
total_seconds
和由TimeDelta填充的差分列,而不是像df['date1'].dt.total_seconds()这样的datetimes列
df['diff'] = df['date2'] - df['date1']
df['diff'] = df['diff'].dt.total_seconds().astype(int)
print (df)
date1 date2 diff
0 2015-01-01 2015-01-01 02:00:00 7200
1 2015-01-02 2015-01-02 01:00:00 3600
2 2015-01-03 2015-01-03 00:00:00 0
df['newColumn'] = df['Time'].dt.total_seconds()