如何使用pandas從DateTime變數中提取特徵?


從DateTime物件中讀取和提取有效資訊是資料分析中一項非常重要的任務。pandas包提供了一些有用的工具來執行從DateTime物件中提取特徵的操作。

在pandas中,series.dt()方法用於訪問給定時間序列的年份、月份、日期等元件。

series.dt()方法有一些屬性可以提取年份、月份、季度和日期特徵。在下面的示例中,我們將使用其中一些屬性來提取特徵。

示例1

您可以看到我們建立了一個包含10個不同時間戳的pandas序列。然後,我們使用dt.day屬性僅訪問時間序列中的年份。

# importing pandas package
import pandas as pd

#creating the pandas Series
s = pd.Series(pd.date_range('2021-01-01 2:30', periods=10, freq='30H10min'))

print(s)

# access day
result = s.dt.day
print("Output:",result)

輸出

輸出如下所示:

0    2021-01-01 02:30:00
1    2021-01-02 08:40:00
2    2021-01-03 14:50:00
3    2021-01-04 21:00:00
4    2021-01-06 03:10:00
5    2021-01-07 09:20:00
6    2021-01-08 15:30:00
7    2021-01-09 21:40:00
8    2021-01-11 03:50:00
9    2021-01-12 10:00:00
dtype: datetime64[ns]

Output:
0    1
1    2
2    3
3    4
4    6
5    7
6    8
7    9
8   11
9   12
dtype: int64

初始序列的第一個時間戳是**2021-01-01 02:30:00**,後續時間戳每30小時10分鐘遞增一次,上面輸出塊的第二部分顯示了從DateTime物件中訪問的日期。

示例2

將dt.hour屬性應用於相同的示例,以獲取10個時間戳的小時資料。

# importing pandas package
import pandas as pd

#creating the pandas Series
s = pd.Series(pd.date_range('2021-01-01 2:30', periods=10, freq='30H10min'))

print(s)

# access hour
result = s.dt.hour
print("Output:",result)

輸出

輸出如下:

0    2021-01-01 02:30:00
1    2021-01-02 08:40:00
2    2021-01-03 14:50:00
3    2021-01-04 21:00:00
4    2021-01-06 03:10:00
5    2021-01-07 09:20:00
6    2021-01-08 15:30:00
7    2021-01-09 21:40:00
8    2021-01-11 03:50:00
9    2021-01-12 10:00:00
dtype: datetime64[ns]

Output:
0    2
1    8
2   14
3   21
4    3
5    9
6   15
7   21
8    3
9   10
dtype: int64

正如我們在上面的輸出塊中看到的,series.dt函式已成功地使用hour屬性返回了小時資料。

更新於:2022年3月7日

252 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.