当前位置: 首页 > 面试题库 >

Python-将datetime列转换为秒

艾泽语
2023-03-14
问题内容

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

有人有指针吗?我在互联网上能找到的就是如何转换您的列,而不是创建一个新列并转换另一个列。

先感谢您!


问题答案:

我认为您需要total_seconds

print (df['col'].dt.total_seconds())

样品:

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
df['diff'] = df['date2'] - df['date1']
df['diff'] = df['diff'].dt.total_seconds()

print (df)
       date1               date2    diff
0 2015-01-01 2015-01-01 02:00:00  7200.0
1 2015-01-02 2015-01-02 01:00:00  3600.0
2 2015-01-03 2015-01-03 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


 类似资料:
  • 问题内容: 我在以字符串格式导入的pandas DataFrame中有一个字段。它应该是日期时间变量。如何将其转换为datetime列,然后根据日期进行过滤。 例: DataFrame Name: raw_data Column Name: Mycol Value Format in Column: ‘05SEP2014:00:00:00.000’ 问题答案: 使用该函数,指定一种格式以匹配您的数

  • 问题内容: 我有一个时间序列。我提取了索引,并希望将它们分别转换为。您如何去做?我尝试使用,但使用后检查时无法转换 问题答案: 只需尝试to_datetime() 更改类型 更新 谢谢@mjp,以后会弃用,请改用!

  • 我有一个字段在熊猫DataFrame被导入为字符串格式。它应该是日期时间变量。如何将其转换为日期时间列,然后根据日期进行筛选。 示例: 数据帧名称:原始数据

  • 问题内容: 我有一个WebService返回DateTime字段。 我得到一个结果,但是 我想我怎么能做到这一点。 通过设置Header Content-Type:application / json; charset = utf-8; 我得到了类似的结果。 问题答案: 您可以更改您的WS以返回带有DateTime值的long。要返回的值是自Unix纪元(01/01/1970)以来的毫秒数。这可以

  • 问题内容: 我有DATETIME格式的mysql列。 在纪元秒内有没有办法访问此专栏?如果没有,将日期时间格式转换为纪元秒的最佳方法是什么?哪种类型的字段最能捕捉到这一点? 问题答案: 使用MySQL的功能

  • 问题内容: 我在UTC有一个时间,我想要从纪元开始经过的秒数。 我正在使用strftime将其转换为秒数。以2012年4月1日为例。 从纪元开始的UTC时间为2012年4月1日,但上述时间返回1333234800,相差1小时。 因此,看来strftime正在考虑我的系统时间,并在某处应用了时区偏移。我以为日期时间纯粹是天真的? 我该如何解决?如果可能的话,除非标准,否则避免导入其他库。(我有可移植