使用pandas to_datetime与时间戳
在这篇文章中,我们将使用pandas包中的to_datetime()方法将时间戳转换成数据时间。时间戳是一个编码信息或一组字符,用于识别某一事件发生的时间,给出日期和时间,可以精确到一秒钟的小数点。
语法:
pandas.to_datetime(arg, errors=’raise’, dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin=’unix’, cache=False)
参数:
- arg: 一个整数、字符串、浮点数、列表或dict对象,用于转换为Date时间对象。
- dayfirst: 布尔值,如果为真,则将日期放在首位。
- yearfirst: 布尔值,如果为真,则将年份放在前面。
- utc:布尔值,如果为真,则返回UTC的时间。
- format:字符串输入,告诉日、月、年的位置。
例子1:带有to_datetime的时间戳。
这里我们使用pandas.DataFrame()方法将CSV文件转换为数据框架,在使用pandas.read_csv()读取文件内容后,数据框架中的时间戳列被作为参数给到to_datetime()中,以便将其转换为DateTime。单位=’s’用于将时间戳列的值转换为历时,转换为DateTime后,它被存储在数据框架中一个名为’Datetime’的列。
File Used:
代码:
# import packages
import pandas as pd
# creating a dataframe from the csv file
data = pd.DataFrame(pd.read_csv('timestamps.csv'))
# viewing our dataframe
print("Original dataframe")
display(data)
# unit='s' to convert it into epoch time
data['Datetime'] = pd.to_datetime(data['timestamps'],
unit='s')
# checking our dataframe once again
print("Timestamps")
display(data)
输出:
例子2:格式化日期时间列。
代码和前面的例子一样,插件是对 “DateTime “列进行格式化。前面例子中的Datetime列可以使用strftime()进一步修改,strftime()需要一个字符串作为参数。strftime()返回一个由date_format指定的格式化字符串的索引,它支持与python标准库相同的字符串格式。
语法: strftime(format)
代码:
# import packages
import pandas as pd
import datetime
# creating a dataframe from the csv file
data = pd.DataFrame(pd.read_csv('timestamps.csv'))
# unit='s' to convert it into epoch time
data['Datetime'] = pd.to_datetime(data['timestamps'],
unit='s')
data['Modified Datetime'] = data['Datetime'].dt.strftime('%d-%m-%Y %H:%M')
# checking our dataframe once again
display(data)
输出:
例子3:在to_datetime()方法中使用unit=’ms’。
pd.to_datetime()方法以时间戳为参数,单位=’ms’,计算到Unix纪元起点的毫秒数。
# import packages
import pandas as pd
# unit='ms' to calculate the number
# of milliseconds
date = pd.to_datetime(1550767605,
unit = 'ms')
# checking our dataframe once again
print(date)
输出:
1970-01-18 22:46:07.605000