pd.to_datetime()
是 Pandas 库中用来将日期和时间字符串转换为日期时间对象的一个非常有用的函数,常用它进行时间上的计算和数据分析。
在 Pandas 中,pd.to_datetime()
函数可以接收多种格式的日期时间字符串、列表、数组或者 Pandas 的 Series 对象,然后将它们转换成 Pandas 的 datetime64 类型。转换后的数据可以更好地与 Pandas 的日期时间功能集成,比如时间差计算、时间序列分析等。
pandas.to_datetime(arg,
format=None,
errors='raise',
utc=None,
unit=None,
infer_datetime_format=False,
origin='unix',
cache=True,
dayfirst=False,
yearfirst=False)
arg:
format:
errors:
raise
: 引发异常 (默认值)。coerce
: 将无效解析设置为 NaT
。ignore
: 返回原始输入,保持不变。utc:
True
或 False
。unit:
infer_datetime_format:
True
可以加快处理速度。origin:
'unix'
(1970-01-01)。可以设置为 'julian'
、'unix'
、或自定义日期。cache:
True
。如果设为 True
,可缓存转换后的日期以加速后续相同输入的转换。dayfirst:
False
。如果设为 True
,则在解析日期时将日和月的位置交换。例如,'01/02/2023'
会被视为 2023-01-02
。yearfirst:
False
。如果设为 True
,则优先将年份放在前三个位置,例如,'2023/03/01'
会被理解为 2023年03月01日
。import pandas as pd
date_str = '2023-01-01'
date = pd.to_datetime(date_str)
print(date)
输出:
2023-01-01 00:00:00
import pandas as pd
date_list = ['2023-01-01', '2023-02-01', '2023-03-01']
dates = pd.to_datetime(date_list)
print(dates)
输出:
DatetimeIndex(['2023-01-01', '2023-02-01', '2023-03-01'], dtype='datetime64[ns]', freq=None)
import pandas as pd
date_str = '01/02/2023'
date = pd.to_datetime(date_str, format='%d/%m/%Y')
print(date)
输出:
2023-02-01 00:00:00
import pandas as pd
date_list = ['2023-01-01', 'invalid_date']
dates = pd.to_datetime(date_list, errors='coerce')
print(dates)
输出:
DatetimeIndex(['2023-01-01', 'NaT'], dtype='datetime64[ns]', freq=None)
假设我们在做一个分析项目,需要处理一个包含日期时间信息的 CSV 文件,例如一个销售数据文件 sales_data.csv
,内容如下:
Order ID | Order Date | Amount |
---|---|---|
1 | 2023-01-15 | 150 |
2 | 2023-02-20 | 200 |
3 | 2023/03/25 | 300 |
4 | 15/04/2023 | 100 |
pd.to_datetime()函数
使用 步骤import pandas as pd
# 第1步:读取CSV文件
sales_data = pd.read_csv('C:/Users/LHY/相关数据集/sales_date.csv')
# 第2步:查看数据
print("原始数据:")
print(sales_data)
# 第3步:转换订单日期列为 datetime 格式
sales_data['Order Date'] = pd.to_datetime(sales_data['Order Date'], errors='coerce')
# 第4步:查看转换后的数据
print("\n转换后的数据:")
print(sales_data)
# 第5步:计算总销售额
total_amount = sales_data['Amount'].sum()
print("\n总销售额:", total_amount)
# 第6步:提取年份
sales_data['Year'] = sales_data['Order Date'].dt.year
print("\n添加年份列的数据:")
print(sales_data)
pd.read_csv()
函数读取数据。pd.to_datetime()
将 'Order Date'
列转换为日期时间格式。errors='coerce'
表示如果转换失败,将返回 NaT
(Not a Time),而不是报错。Amount
列求和。dt
访问器提取年份,方便后续分析。原始数据:
Order ID Order Date Amount
0 1 2023/1/15 150
1 2 2023/2/20 200
2 3 2023/3/25 300
3 4 15/04/2023 100
转换后的数据:
Order ID Order Date Amount
0 1 2023-01-15 150
1 2 2023-02-20 200
2 3 2023-03-25 300
3 4 NaT 100
总销售额: 750
添加年份列的数据:
Order ID Order Date Amount Year
0 1 2023-01-15 150 2023.0
1 2 2023-02-20 200 2023.0
2 3 2023-03-25 300 2023.0
3 4 NaT 100 NaN
errors='coerce'
可以防止程序因无法解析的日期而崩溃。以上是跟大家分享 pd.to_datetime()
是如何帮助我们处理日期时间数据的,希望这对你理解和使用这个函数有所帮助!
如果还有其他问题,欢迎随时交流学习!