【Pandas】pandas Series dt
# Pandas2.2 Series
## Accessors
|方法|描述|
|-|:-------|
|Series.str|对 `Series` 中的字符串元素进行矢量化字符串操作|
|Series.cat|用于处理分类数据(Categorical Data)的属性|
|Series.dt|用于处理日期时间(datetime)数据的属性|
### pandas.Series.dt
`pandas.Series.dt` 是用于处理日期时间(datetime)数据的属性。它提供了一系列方法来操作和提取日期时间数据中的各个组件,如年、月、日、小时、分钟等。`pandas.Series.dt` 主要用于 `datetime64` 和 `timedelta64` 类型的 `Series`。
#### 常用方法
以下是一些常用的 `pandas.Series.dt` 方法及其示例:
1. **`year`**: 获取年份。
2. **`month`**: 获取月份。
3. **`day`**: 获取日期。
4. **`hour`**: 获取小时。
5. **`minute`**: 获取分钟。
6. **`second`**: 获取秒。
7. **`dayofweek`**: 获取星期几(0 表示周一,6 表示周日)。
8. **`day_name()`**: 获取星期几的名称。
9. **`quarter`**: 获取季度。
10. **`is_month_start`**: 检查是否是月份的开始。
11. **`is_month_end`**: 检查是否是月份的结束。
12. **`is_year_start`**: 检查是否是年的开始。
13. **`is_year_end`**: 检查是否是年的结束。
#### 示例
假设我们有一个包含日期时间数据的 `Series`:
```python
import pandas as pd
# 创建一个包含日期时间数据的 Series
dates = pd.Series(pd.date_range(start='2023-01-01', periods=6, freq='D'))
print(dates)
```
输出:
```
0 2023-01-01
1 2023-01-02
2 2023-01-03
3 2023-01-04
4 2023-01-05
5 2023-01-06
dtype: datetime64[ns]
```
##### 1. `year`
```python
# 获取年份
years = dates.dt.year
print(years)
```
输出:
```
0 2023
1 2023
2 2023
3 2023
4 2023
5 2023
dtype: int32
```
##### 2. `month`
```python
# 获取月份
months = dates.dt.month
print(months)
```
输出:
```
0 1
1 1
2 1
3 1
4 1
5 1
dtype: int32
```
##### 3. `day`
```python
# 获取日期
days = dates.dt.day
print(days)
```
输出:
```
0 1
1 2
2 3
3 4
4 5
5 6
dtype: int32
```
##### 4. `hour`
```python
# 获取小时
hours = dates.dt.hour
print(hours)
```
输出:
```
0 0
1 0
2 0
3 0
4 0
5 0
dtype: int32
```
##### 5. `minute`
```python
# 获取分钟
minutes = dates.dt.minute
print(minutes)
```
输出:
```
0 0
1 0
2 0
3 0
4 0
5 0
dtype: int32
```
##### 6. `second`
```python
# 获取秒
seconds = dates.dt.second
print(seconds)
```
输出:
```
0 0
1 0
2 0
3 0
4 0
5 0
dtype: int32
```
##### 7. `dayofweek`
```python
# 获取星期几(0 表示周一,6 表示周日)
dayofweek = dates.dt.dayofweek
print(dayofweek)
```
输出:
```
0 6
1 0
2 1
3 2
4 3
5 4
dtype: int32
```
##### 8. `day_name()`
```python
# 获取星期几的名称
day_name = dates.dt.day_name()
print(day_name)
```
输出:
```
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
dtype: object
```
##### 9. `quarter`
```python
# 获取季度
quarter = dates.dt.quarter
print(quarter)
```
输出:
```
0 1
1 1
2 1
3 1
4 1
5 1
dtype: int32
```
##### 10. `is_month_start`
```python
# 检查是否是月份的开始
is_month_start = dates.dt.is_month_start
print(is_month_start)
```
输出:
```
0 True
1 False
2 False
3 False
4 False
5 False
dtype: bool
```
##### 11. `is_month_end`
```python
# 检查是否是月份的结束
is_month_end = dates.dt.is_month_end
print(is_month_end)
```
输出:
```
0 False
1 False
2 False
3 False
4 False
5 False
dtype: bool
```
##### 12. `is_year_start`
```python
# 检查是否是年的开始
is_year_start = dates.dt.is_year_start
print(is_year_start)
```
输出:
```
0 True
1 False
2 False
3 False
4 False
5 False
dtype: bool
```
##### 13. `is_year_end`
```python
# 检查是否是年的结束
is_year_end = dates.dt.is_year_end
print(is_year_end)
```
输出:
```
0 False
1 False
2 False
3 False
4 False
5 False
dtype: bool
```
#### 总结
`pandas.Series.dt` 提供了一系列方法来操作和提取日期时间数据中的各个组件。通过这些方法,你可以轻松地对日期时间数据进行各种操作,如获取年份、月份、日期、小时等。希望这些示例能帮助你更好地理解和使用 `pandas.Series.dt`。