在Pandas中,将浮点数转换为日期时间有两种常见的方式:使用to_datetime()函数或使用astype()函数。下面分别详细介绍这两种方法。
使用to_datetime()函数可以将浮点数转换为日期时间。to_datetime()函数需要传入一个Series或DataFrame对象,以及日期时间格式的字符串。具体步骤如下:
import pandas as pd
df = pd.DataFrame({'time_float': [1632081254.789, 1632081254.123, 1632081254.456]})
df['time'] = pd.to_datetime(df['time_float'], unit='s', format='%Y-%m-%d %H:%M:%S.%f')
解释一下参数的含义:
- 'time_float':浮点数列的列名。
- unit='s':指定浮点数的单位为秒。
- format='%Y-%m-%d %H:%M:%S.%f':指定日期时间格式的字符串。
print(df)
输出结果:
time_float time
0 1632081254.789 2021-09-19 09:40:54.789
1 1632081254.123 2021-09-19 09:40:54.123
2 1632081254.456 2021-09-19 09:40:54.456
使用astype()函数可以将浮点数转换为整数,然后使用Pandas的to_datetime()函数将整数转换为日期时间。具体步骤如下:
import pandas as pd
df = pd.DataFrame({'time_float': [1632081254.789, 1632081254.123, 1632081254.456]})
df['time_int'] = (df['time_float']).astype(int)
解释一下:使用astype()函数将浮点数列转换成整数列,由于转换后是以秒为单位的整数列,因此可以直接使用Pandas的to_datetime()函数进行日期时间的转换。
df['time'] = pd.to_datetime(df['time_int'], unit='s')
解释一下参数的含义:
- 'time_int':整数列的列名。
- unit='s':指定整数的单位为秒。
df = df.drop('time_int', axis=1)
解释一下:由于整数列已经没有用了,因此可以使用drop()函数将其删除。
print(df)
输出结果:
time_float time
0 1632081254.789 2021-09-19 09:40:54
1 1632081254.123 2021-09-19 09:40:54
2 1632081254.456 2021-09-19 09:40:54
这就是将浮点数转换为日期时间的完整攻略。
本文链接:http://task.lmcjl.com/news/17299.html