在Pandas中,将浮点数转换为日期时间有两种常见的方式:使用to_datetime()函数或使用astype()函数。下面分别详细介绍这两种方法。
使用to_datetime()函数
使用to_datetime()函数可以将浮点数转换为日期时间。to_datetime()函数需要传入一个Series或DataFrame对象,以及日期时间格式的字符串。具体步骤如下:
- 构造一个Pandas DataFrame,包含一个浮点数列。
import pandas as pd
df = pd.DataFrame({'time_float': [1632081254.789, 1632081254.123, 1632081254.456]})
- 将浮点数列转换为日期时间列,需要指定日期时间格式的字符串。例如,'%Y-%m-%d %H:%M:%S.%f' 表示年-月-日 时:分:秒.毫秒。可以根据实际需要进行更改。
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()函数
使用astype()函数可以将浮点数转换为整数,然后使用Pandas的to_datetime()函数将整数转换为日期时间。具体步骤如下:
- 构造一个Pandas DataFrame,包含一个浮点数列。
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
这就是将浮点数转换为日期时间的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Pandas DataFrame中把浮点数转换为数据时间 - Python技术站