Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-将datetime列转换为秒_Python_Pandas - Fatal编程技术网

Python-将datetime列转换为秒

Python-将datetime列转换为秒,python,pandas,Python,Pandas,我有一个日期列(称为“时间”),其中包含天/小时/分钟等(timedelta)。我已经在数据框中创建了一个新列,我想将“Time”列转换为秒,并将其放入每行的新列中 有人有什么建议吗?我在互联网上所能找到的只是如何转换你的专栏,而不是创建一个新专栏然后再转换另一个专栏 提前谢谢你 我认为您需要: 样本: df = pd.DataFrame({'date1':pd.date_range('2015-01-01', periods=3), 'date2':pd.

我有一个日期列(称为“时间”),其中包含天/小时/分钟等(timedelta)。我已经在数据框中创建了一个新列,我想将“Time”列转换为秒,并将其放入每行的新列中

有人有什么建议吗?我在互联网上所能找到的只是如何转换你的专栏,而不是创建一个新专栏然后再转换另一个专栏

提前谢谢你

我认为您需要:

样本:

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()