Pandas 如何在使用 pandas.to_datetime 时仅保留日期部分

Pandas 如何在使用 pandas.to_datetime 时仅保留日期部分

在本文中,我们将介绍 Pandas 如何在使用 pandas.to_datetime 方法时仅保留日期部分,以及如何对日期数据进行操作和转换。 Pandas 是 Python 中一个非常强大的数据分析库,对于处理日期数据,Pandas 提供了很多方便的方法和工具。

阅读更多:Pandas 教程

pandas.to_datetime 方法

Pandas 中的 to_datetime 方法可以将字符串或数字转换为日期格式。默认情况下,它会将字符串转换为 pandas.Timestamp 格式,而数字则会被解释为 Unix 时间戳。to_datetime 方法的基本语法如下:

import pandas as pd
pd.to_datetime(arg, format=None, errors='raise', utc=None, box=True, unit=None, infer_datetime_format=False, origin='unix')
Python

其中,arg 表示待转换的数据;format 表示日期格式;errors 表示错误处理方式;unit 表示时间单位等。

默认情况下,to_datetime 方法会将字符串中的所有信息,包括日期、时间、时区等全部转换为 Timestamp 类型。例如:

import pandas as pd
pd.to_datetime('2021-01-01 12:30:00')
Python

输出结果为:

Timestamp('2021-01-01 12:30:00')
Python

如果只需要将字符串转换为日期格式,可以使用 format 参数或者 strftime(string format time)格式化字符串,将需要的信息提取出来。例如:

import pandas as pd
pd.to_datetime('2021-01-01', format='%Y-%m-%d')
Python

输出结果为:

Timestamp('2021-01-01 00:00:00')
Python

这样,我们就仅保留了日期部分。

Pandas 对日期数据的操作和转换

Pandas 中对日期数据的操作和转换主要包括以下几个方面:

1. 获得日期和时间信息

使用 pandas.Series.dt 属性可以获得日期和时间的各个部分信息,如年、月、日、时、分、秒等。例如:

import pandas as pd
data = ['2021-01-01 12:30:00', '2021-02-03']
s = pd.Series(data)
dt = pd.to_datetime(s)

dt.dt.year
dt.dt.month
dt.dt.day
dt.dt.hour
dt.dt.minute
dt.dt.second
Python

输出结果为:

0    2021
1    2021
dtype: int64

0    1
1    2
dtype: int64

0    1
1    3
dtype: int64

0    12
1     0
dtype: int64

0    30
1     0
dtype: int64

0    0
1    0
dtype: int64
Python

2. 增加和减少日期和时间

可以使用 pandas.Timedelta 或 pandas.DateOffset 对日期和时间进行增加和减少。例如:

import pandas as pd
data = ['2021-01-01', '2021-02-03']
s = pd.Series(data)
dt = pd.to_datetime(s)

dt + pd.Timedelta(days=1)
dt - pd.DateOffset(months=1)
Python

输出结果为:

0   2021-01-02
1   2021-02-04
dtype: datetime64[ns]

0   2020-12-01
1   2021-01-03
dtype: datetime64[ns]
Python

3. 转换不同的日期频率

可以使用 pandas.Series.asfreq() 方法或 pandas.Series.resample() 方法将日期频率转换为不同的格式。例如:

import pandas as pd
import numpy as np
rng = pd.date_range(start='2021-01-01', periods=6, freq='D')
ts = pd.Series(np.random.randn(len(rng)), index=rng)

ts.asfreq(freq='H', method='ffill')
ts.resample('2H').mean()
Python

输出结果为:

2021-01-01 00:00:00    0.329954
20221-01-01 01:00:00    0.329954
2021-01-01 02:00:00    0.329954
2021-01-01 03:00:00   -0.416079
2021-01-01 04:00:00    1.504225
2021-01-01 05:00:00    1.504225
Freq: H, dtype: float64
Python
2021-01-01 00:00:00   -0.104367
2021-01-01 02:00:00    0.235810
2021-01-01 04:00:00    1.504225
Freq: 2H, dtype: float64
Python

总结

本文介绍了在 Pandas 中如何使用 to_datetime 方法仅保留日期部分,以及对日期数据进行操作和转换的方法。通过学习本文内容,相信读者已经能够更好地处理和分析日期数据了。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册