Hướng dẫn convert datetime to month year python - chuyển đổi datetime sang tháng năm python

Tôi có loại danh sách các chuỗi với 9000 hàng trong đó mỗi hàng là tháng/ngày/năm:

10/30/2009
12/19/2009
4/13/2009
8/18/2007
7/17/2008
6/16/2009
1/14/2009
12/18/2007
9/14/2009
2/13/2006
3/25/2009
2/23/2007

Tôi muốn chuyển đổi nó và chỉ có danh sách với tháng/năm nếu có thể là DateFormat, như thế này:

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007

Đã hỏi ngày 22 tháng 11 năm 2016 lúc 14:22Nov 22, 2016 at 14:22

1

Tôi nghĩ rằng bạn có thể sử dụng đầu tiên

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
3 và sau đó
In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
4:

df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

Hoặc

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
5:

df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

Hoặc

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
6 bởi
In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
7:

df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

Đã trả lời ngày 22 tháng 11 năm 2016 lúc 14:24Nov 22, 2016 at 14:24

JEZRAELJEZRAELjezrael

760K85 Huy hiệu vàng1211 Huy hiệu bạc1147 Huy hiệu đồng85 gold badges1211 silver badges1147 bronze badges

5

Bạn có thể sử dụng

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
8 để xây dựng chuỗi:

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

Đã trả lời ngày 22 tháng 11 năm 2016 lúc 14:25Nov 22, 2016 at 14:25

EdchumedchumEdChum

352K194 Huy hiệu vàng777 Huy hiệu bạc550 Huy hiệu Đồng194 gold badges777 silver badges550 bronze badges

Hoặc bạn có thể sử dụng một biểu thức thông thường, nếu bạn thích loại giải pháp đó. Điều này sẽ giải quyết vấn đề của bạn:

import re

res = re.sub[r"/\d\d?/", "/", s]

[Lưu ý rằng

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
9 là chuỗi ngày, dưới dạng chuỗi ngày riêng biệt hoặc chuỗi dài chứa tất cả các ngày và bạn có kết quả của mình bị ràng buộc với
import re

res = re.sub[r"/\d\d?/", "/", s]
0.]

Đã trả lời ngày 22 tháng 11 năm 2016 lúc 14:35Nov 22, 2016 at 14:35

Sự kết luận

Trong hướng dẫn này, chúng tôi đã đi sâu vào Datetime Python, và cũng thực hiện một số công việc với Pandas và mô -đun Lịch. Chúng tôi đã bao gồm rất nhiều, nhưng hãy nhớ: cách tốt nhất để học một cái gì đó là bằng cách thực sự viết mã!

Nếu bạn muốn thực hành viết ____ ____ 61 & nbsp; mã với kiểm tra câu trả lời tương tác, hãy xem khóa học trung gian & nbsp; Python của chúng tôi & nbsp; cho & nbsp; một bài học về DateTime trong Python với kiểm tra câu trả lời tương tác và kiểm tra mã trong trình duyệt.

Nói tóm lại, nó là một cách thực sự mạnh mẽ để xử lý bất cứ ngày nào liên quan đến ngày và thời gian trong Python. Vì vậy, hãy để Lừa vào đó!

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về các hàm DateTime Python một cách chi tiết, bao gồm:

  • Tạo đối tượng ngày
  • Nhận năm và tháng kể từ ngày
  • Nhận ngày tháng và ngày trong tuần kể từ ngày
  • Nhận giờ và phút kể từ ngày
  • Nhận số tuần của năm kể từ ngày
  • Chuyển đổi đối tượng ngày thành dấu thời gian
  • Chuyển đổi chuỗi dấu thời gian unix cho đến ngày đối tượng
  • Xử lý các đối tượng thời gian
  • Nhận được sự khác biệt giữa hai ngày và thời gian
  • Ngày định dạng: Strftime [] và Strptime []
  • Xử lý thời gian
  • Làm việc với các đối tượng DateTime Pandas
    • Nhận được năm, tháng, ngày, giờ và phút
    • Nhận ngày trong tuần và ngày trong năm
    • Chuyển đổi các đối tượng ngày thành Chỉ mục DataFrame

Khi bạn làm việc thông qua hướng dẫn này, chúng tôi khuyến khích bạn chạy mã trên máy của riêng bạn. Ngoài ra, nếu bạn muốn chạy mã trong trình duyệt của mình và học theo kiểu tương tác với kiểm tra câu trả lời để chắc chắn rằng bạn đang làm đúng, khóa học trung gian Python của chúng tôi & nbsp; giới thiệu. Bạn có thể bắt đầu học BY & NBSP; đăng ký tài khoản người dùng miễn phí.

Học kỹ năng dữ liệu

Nhận mức tăng tiếp theo hoặc chuyển sang nghề nghiệp trong khoa học dữ liệu bằng cách học các kỹ năng dữ liệu.

Đăng ký một tài khoản miễn phí và thử các khóa học tương tác của chúng tôi tại Python, R, SQL, v.v.free account and try our interactive courses in Python, R, SQL, and more!

Các lớp DateTime Python

Trước khi nhảy vào mã viết, nó đáng để xem xét năm lớp đối tượng chính được sử dụng trong mô -đun & nbsp; ____ ____ 61 & nbsp; Tùy thuộc vào những gì chúng tôi đang cố gắng làm, chúng tôi có thể cần phải sử dụng một hoặc nhiều lớp khác nhau sau:

  • DateTime & nbsp; - cho phép chúng tôi thao tác với thời gian và ngày cùng nhau [tháng, ngày, năm, giờ, thứ hai, micro giây]. – Allows us to manipulate times and dates together [month, day, year, hour, second, microsecond].
  • Ngày & nbsp; - cho phép chúng tôi thao túng ngày độc lập với thời gian [tháng, ngày, năm]. – Allows us to manipulate dates independent of time [month, day, year].
  • Thời gian & nbsp; - cho phép chúng tôi thao túng thời gian độc lập với ngày [giờ, phút, thứ hai, micro giây]. – Allows us to manipulate time independent of date [hour, minute, second, microsecond].
  • Timedelta, a & nbsp; thời lượng & nbsp; thời gian được sử dụng để thao tác ngày và đo lường.— A duration of time used for manipulating dates and measuring.
  • Tzinfo, một lớp trừu tượng để xử lý các múi giờ.— An abstract class for dealing with time zones.

Nếu những sự khác biệt đó không có ý nghĩa, thì đừng lo lắng! Hãy cùng đi sâu vào & nbsp; ____ ____ 61 & nbsp; và bắt đầu làm việc với nó để hiểu rõ hơn về cách chúng được áp dụng.

Tạo đối tượng ngày

Đầu tiên, hãy để xem xét kỹ hơn về A & nbsp; ____ ____ 61 & nbsp; đối tượng. Vì & nbsp; ____ ____ 61 & nbsp; vừa là một mô -đun và lớp trong mô -đun đó, chúng tôi sẽ bắt đầu bằng cách nhập & nbsp; ____ ____ 61 & nbsp; lớp từ & nbsp; ________ 61 & nbsp;

Sau đó, chúng tôi sẽ in ngày và thời gian hiện tại để xem xét kỹ hơn về những gì mà có chứa trong A & nbsp; ____ ____ 61 & nbsp; đối tượng. Chúng ta có thể làm điều này bằng cách sử dụng & nbsp; ________ 61 & nbsp; ________ 70 & nbsp; function. Chúng tôi sẽ in đối tượng DateTime của chúng tôi, và sau đó cũng in loại bằng cách sử dụng & nbsp; ________ 71 & nbsp; để chúng tôi có thể xem xét kỹ hơn.

# import datetime class from datetime module
from datetime import datetime

# get current date
datetime_object = datetime.now[]
print[datetime_object]
print['Type :- ',type[datetime_object]]
2019-10-25 10:24:01.521881
Type :-  'datetime.datetime'

Chúng ta có thể thấy từ các kết quả ở trên mà ____ 72 & nbsp; thực sự là a & nbsp; ____ ____ 61 & nbsp; đối tượng của & nbsp; ________ 61 & nbsp; class. Điều này bao gồm các năm, tháng, ngày, giờ, phút, thứ hai và micro giây.

Trích xuất năm và tháng kể từ ngày

Bây giờ chúng ta đã thấy những gì tạo nên một & nbsp; ____ ____ 61 & nbsp; đối tượng, chúng ta có thể đoán cách & nbsp; ________ 77 & nbsp; các đối tượng giống như & nbsp; ________ 61 & nbsp; không có dữ liệu ngày.

Chúng ta cũng có thể chống lại một số vấn đề. Ví dụ: trong hầu hết các bộ dữ liệu, thông tin ngày và thời gian được lưu trữ ở định dạng chuỗi! Ngoài ra, chúng tôi không thể & nbsp; muốn & nbsp; tất cả dữ liệu ngày và giờ này - nếu chúng tôi làm một cái gì đó như phân tích bán hàng hàng tháng, việc phá vỡ mọi thứ của microsecond sẽ rất hữu ích.

Vì vậy, bây giờ, hãy để bắt đầu đào sâu vào một nhiệm vụ chung trong khoa học dữ liệu: chỉ trích xuất các yếu tố mà chúng ta thực sự muốn từ một chuỗi sử dụng & nbsp; ________ 61.

Để làm điều này, chúng ta cần phải làm một vài điều.

Xử lý các chuỗi ngày và thời gian với Strptime [] và Strftime []

Rất may, ________ 61 & nbsp; bao gồm hai phương thức, & nbsp; , và & nbsp; ________ 85 & nbsp; chuyển đổi các đối tượng DateTime trở lại thành chuỗi.

Tất nhiên, & nbsp; ____ ____ 84 & nbsp; isn Magic Magic - nó có thể biến & nbsp; bất kỳ & nbsp; chuỗi thành một ngày và thời gian, và nó sẽ cần một chút trợ giúp từ chúng tôi để giải thích những gì nó nhìn thấy! Nhưng nó có khả năng đọc hầu hết các định dạng chuỗi thông thường cho dữ liệu ngày và giờ [xem & NBSP; tài liệu để biết thêm chi tiết]. Hãy để cho nó một chuỗi ngày ở định dạng Yyyy-MM-DD và xem những gì nó có thể làm!

my_string = '2019-10-31'

# Create date object in given time format yyyy-mm-dd
my_date = datetime.strptime[my_string, "%Y-%m-%d"]

print[my_date]
print['Type: ',type[my_date]]
10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
0

Lưu ý rằng ________ 84 & nbsp; đã lấy hai đối số: chuỗi [

my_string = '2019-10-31'

# Create date object in given time format yyyy-mm-dd
my_date = datetime.strptime[my_string, "%Y-%m-%d"]

print[my_date]
print['Type: ',type[my_date]]
2] và & nbsp; ________ 93, một chuỗi khác cho biết & nbsp; chuỗi là năm.

Một danh sách đầy đủ các mẫu này có sẵn trong & nbsp; tài liệu và chúng tôi sẽ đi vào các phương pháp này về chiều sâu hơn sau này trong hướng dẫn này.

Bạn cũng có thể nhận thấy rằng thời gian của & nbsp; ________ 97 & nbsp; đã được thêm vào ngày. Điều đó bởi vì chúng tôi đã tạo đối tượng A & NBSP;

Dù sao, chúng tôi đã hy vọng tách ra các yếu tố cụ thể của ngày để phân tích của chúng tôi. Một cách có thể làm điều đó bằng cách sử dụng các thuộc tính lớp tích hợp của đối tượng DateTime, như & nbsp; ________ 100 & nbsp; hoặc & nbsp; ________ 101:

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
1
10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
2

Tìm hiểu Python đúng cách.

Tìm hiểu Python bằng cách viết mã python từ ngày đầu tiên, ngay trong cửa sổ trình duyệt của bạn. Đó là cách tốt nhất để học Python - hãy tự mình xem một trong hơn 60 bài học miễn phí của chúng tôi.

Hãy thử DataQuest

Nhận ngày trong tháng và ngày trong tuần kể từ ngày

Hãy cùng làm một số trích xuất thêm, bởi vì đó là một nhiệm vụ thực sự phổ biến. Lần này, chúng tôi sẽ cố gắng để có được ngày trong tháng và ngày trong tuần từ & nbsp; ____ 102. DateTime sẽ cung cấp cho chúng tôi ngày trong tuần dưới dạng một số sử dụng chức năng của nó & nbsp;

Chúng tôi sẽ bắt đầu bằng cách nhập & nbsp; ________ 104, và sau đó sử dụng & nbsp; ____ ____ 107 & nbsp; và & nbsp; Từ đó, chúng ta có thể có được ngày trong tuần ở định dạng văn bản như vậy:

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
3
10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
4

Đợi một chút, trông hơi kỳ quặc! Ngày thứ ba trong tuần nên là thứ tư, không phải thứ năm, phải không?

Hãy cùng xem xét kỹ hơn về điều đó & nbsp; ____ ____ 105 & nbsp; biến bằng cách sử dụng một vòng lặp:

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
5
10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
6

Bây giờ chúng ta có thể thấy rằng Python bắt đầu vài tuần vào thứ Hai và tính từ Chỉ số 0 thay vì bắt đầu từ 1. Vì vậy, điều hợp lý là số 3 được chuyển đổi thành Thứ Năm Thứ Năm như chúng ta đã thấy ở trên.

Nhận hàng giờ và phút từ một đối tượng DateTime Python

Bây giờ, hãy để đào sâu vào thời gian và trích xuất giờ và phút từ đối tượng DateTime. Giống như những gì chúng tôi đã làm ở trên với tháng và năm, chúng tôi có thể sử dụng các thuộc tính lớp & nbsp; ________ 111 ​​& nbsp; và & nbsp; ________ 112 & nbsp; để có được giờ và phút trong ngày.

Hãy để đặt một ngày và thời gian mới bằng cách sử dụng chức năng & nbsp; ____ 70 & nbsp; Theo văn bản này, nó ngày 25 tháng 10 năm 2019 lúc 10:25 sáng. Bạn sẽ nhận được kết quả khác nhau tùy thuộc vào thời điểm bạn chọn chạy mã này, tất nhiên!

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
7
10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
8

Nhận tuần trong năm từ một đối tượng DateTime

Chúng ta cũng có thể làm những việc huyền ảo hơn với & nbsp; ________ 61. Ví dụ, điều gì sẽ xảy ra nếu chúng ta muốn biết đó là tuần nào trong năm?

Chúng ta có thể nhận được một năm, tuần trong năm và ngày trong tuần từ A & nbsp; ____ ____ 61 & nbsp; đối tượng với & nbsp; ____ 116 & nbsp; chức năng.

Cụ thể, & nbsp; ________ 117 & nbsp; trả lại một tuple với năm ISO, số tuần và ngày trong tuần. & Nbsp; Lịch ISO & nbsp; là một lịch tiêu chuẩn được sử dụng rộng rãi dựa trên lịch Gregorian. Bạn có thể đọc về nó chi tiết hơn tại liên kết đó, nhưng với mục đích của chúng tôi, tất cả những gì chúng ta cần biết là nó hoạt động như một lịch thông thường, bắt đầu mỗi tuần vào thứ Hai.

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
9
df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

0

Lưu ý rằng trong lịch ISO, tuần bắt đầu đếm từ 1, vì vậy ở đây 5 đại diện cho ngày chính xác trong tuần: Thứ Sáu.

Chúng ta có thể thấy ở trên rằng đây là tuần thứ 43 trong năm, nhưng nếu chúng ta muốn cô lập con số đó, chúng ta có thể làm như vậy với việc lập chỉ mục giống như chúng ta có thể cho bất kỳ danh sách Python hoặc tuple nào khác:

df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

1
df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

2

Chuyển đổi một đối tượng ngày thành Unix Timestamp và ngược lại

Trong lập trình, nó không phải là hiếm khi gặp dữ liệu thời gian và ngày mà Lừa lưu trữ dưới dạng dấu thời gian hoặc muốn lưu trữ dữ liệu của riêng bạn trong & nbsp; định dạng dấu thời gian của Unix.

Chúng ta có thể làm điều đó bằng cách sử dụng DateTime, tích hợp & nbsp; ________ 118 & nbsp; hàm, lấy A & nbsp; ____ ____ 61 & nbsp; đối tượng làm đối tượng và trả về ngày và thời gian đó ở định dạng dấu thời gian:

df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

3
df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

4

Tương tự, chúng ta có thể thực hiện chuyển đổi ngược bằng cách sử dụng

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
20. Đây là hàm A & nbsp;

df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

5
df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

6

Đo khoảng thời gian với các đối tượng thời gian

Thông thường, chúng ta có thể muốn đo một khoảng thời gian hoặc thời lượng, sử dụng DateTime Python. Chúng tôi có thể làm điều này với lớp tích hợp & nbsp; ____ 123 & nbsp; lớp. A & nbsp; ________ 123 & nbsp; đối tượng biểu thị lượng thời gian giữa hai ngày hoặc thời gian. Chúng ta có thể sử dụng điều này để đo lường thời gian, hoặc thao tác ngày hoặc thời gian bằng cách thêm và trừ đi từ chúng, v.v.

Theo mặc định, một đối tượng TimeDelta có tất cả các tham số được đặt thành 0. Hãy cùng tạo ra một đối tượng Timedelta mới mà Lừa dài hai tuần và xem nó trông như thế nào:

df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

7
df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

8

Lưu ý rằng chúng tôi có thể nhận được thời gian thời gian của chúng tôi theo ngày bằng cách sử dụng thuộc tính lớp ____ 123 & nbsp; lớp & nbsp; ________ 126. Như chúng ta có thể thấy trong & nbsp; tài liệu của nó, chúng ta cũng có thể nhận được thời gian này tính bằng giây hoặc micro giây.

Hãy để tạo ra một thời gian khác thời gian để thực hành thêm một chút:

df.col = pd.to_datetime[df.col].dt.to_period['m']
print [df]
       col
0  2009-10
1  2009-12
2  2009-04
3  2007-08
4  2008-07
5  2009-06
6  2009-01
7  2007-12
8  2009-09
9  2006-02
10 2009-03
11 2007-02

print [type[df.loc[0,'col']]]

9
df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

0

Bây giờ, hãy để bắt đầu thực hiện bằng cách sử dụng các đối tượng TimeDelta cùng với các đối tượng DateTime để thực hiện một số toán học! Cụ thể, hãy để thêm một vài khoảng thời gian khác nhau vào thời gian và ngày hiện tại để xem ngày nào sau 15 ngày, ngày này là hai tuần trước.

Để làm điều này, chúng ta có thể sử dụng & nbsp; ________ 127 & nbsp; hoặc & nbsp; ________ 128 & nbsp; toán tử để thêm hoặc trừ đối tượng Timedelta vào/từ đối tượng DateTime. Kết quả sẽ là đối tượng DateTime Plus hoặc trừ thời gian của thời gian được chỉ định trong đối tượng TimedelTA của chúng tôi. Tuyệt, phải không?

.

df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

1
df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

2

Lưu ý rằng đầu ra của các hoạt động toán học này vẫn là một đối tượng ____ ____ 61 & nbsp;

Học kỹ năng dữ liệu

Nhận mức tăng tiếp theo hoặc chuyển sang nghề nghiệp trong khoa học dữ liệu bằng cách học các kỹ năng dữ liệu.

Đăng ký một tài khoản miễn phí và thử các khóa học tương tác của chúng tôi tại Python, R, SQL, v.v.free account and try our interactive courses in Python, R, SQL, and more!

Tìm sự khác biệt giữa hai ngày và thời gian

Tương tự như những gì chúng tôi đã làm ở trên, chúng tôi cũng có thể trừ một ngày từ ngày khác để tìm thời gian giữa họ bằng cách sử dụng DateTime.

Bởi vì kết quả của toán học này là thời lượng A & nbsp;, đối tượng được tạo ra khi chúng ta trừ một ngày từ một ngày khác sẽ là A & nbsp; ____ 123 & nbsp; đối tượng.

Ở đây, chúng tôi sẽ tạo hai & nbsp; ____ ____ 76 & nbsp; đối tượng [remeber, chúng hoạt động giống như & nbsp; ____ ____ 61 & nbsp; đối tượng, chúng chỉ bao gồm dữ liệu thời gian] và trừ cái này từ cái kia để tìm thời lượng:

df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

3
df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

4

Ở trên, chúng tôi chỉ sử dụng ngày vì sự rõ ràng, nhưng chúng tôi có thể làm điều tương tự với các đối tượng ____ ____ 61 & nbsp; để có được một phép đo chính xác hơn bao gồm cả giờ, phút và giây.

df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

5
df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

6

Ngày định dạng: Thêm về Strftime [] và Strptime []

Chúng tôi đã chạm vào một thời gian ngắn trên & nbsp;

________ 84 & nbsp; là phương thức chúng tôi đã sử dụng trước đây và bạn sẽ nhớ lại rằng nó có thể biến một ngày và thời gian mà định dạng thành một chuỗi văn bản thành một đối tượng DateTime, theo định dạng sau:

10/2009
12/2009
4/2009
8/2007
7/2008
6/2009
1/2009
12/2007
9/2009
2/2006
3/2009
2/2007
39

Lưu ý rằng phải mất hai đối số:

  • Chuỗi - thời gian ở định dạng chuỗi mà chúng tôi muốn chuyển đổi
  • Định dạng - Định dạng cụ thể của thời gian trong chuỗi, để strptime [] có thể phân tích chính xác

Chúng ta hãy thử chuyển đổi một loại chuỗi ngày khác nhau lần này.

df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

7
df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

8

Bây giờ, hãy để Lừa làm một cái gì đó nâng cao hơn một chút để thực hành mọi thứ mà chúng tôi đã học được cho đến nay! Chúng tôi sẽ bắt đầu với một ngày ở định dạng chuỗi, chuyển đổi nó thành một đối tượng DateTime và xem một vài cách khác nhau để định dạng nó [DD/mm và mm/dd].

Sau đó, gắn bó với định dạng MM/DD, chúng tôi sẽ chuyển đổi nó thành dấu thời gian UNIX. Sau đó, chúng tôi sẽ chuyển đổi nó trở lại thành A & nbsp; ____ ____ 61 & nbsp; đối tượng và chuyển đổi & nbsp; rằng & nbsp; trở lại thành chuỗi bằng một vài mẫu khác nhau & nbsp; strftime & nbsp; để kiểm soát đầu ra:

df.col = pd.to_datetime[df.col].dt.strftime['%m/%Y']
print [df]
        col
0   10/2009
1   12/2009
2   04/2009
3   08/2007
4   07/2008
5   06/2009
6   01/2009
7   12/2007
8   09/2009
9   02/2006
10  03/2009
11  02/2007

print [type[df.loc[0,'col']]]

9
df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

0

Ở đây, một hình ảnh bạn có thể lưu với một bảng gian lận cho các mẫu thông thường, hữu ích và thời gian sử dụng:

Hãy để có được một chút thực hành bằng cách sử dụng những điều này:

df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

1
df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

2

Xử lý thời gian

Làm việc với ngày và thời gian trong Pythin có thể thậm chí còn phức tạp hơn khi thời gian tham gia. Rất may, mô-đun & nbsp; ____ 142 & nbsp; tồn tại để giúp chúng tôi đối phó với các chuyển đổi chéo thời gian. Nó cũng xử lý thời gian tiết kiệm ánh sáng ban ngày tại các vị trí sử dụng điều đó.

Chúng ta có thể sử dụng chức năng & nbsp; ____ 143 & nbsp; để thêm vị trí múi giờ vào đối tượng DateTime Python. Sau đó, chúng tôi có thể sử dụng hàm & nbsp; ________ 144 & nbsp; để chuyển đổi múi giờ địa phương hiện có thành bất kỳ múi giờ nào khác mà chúng tôi chỉ định [nó cần múi giờ chúng tôi muốn chuyển đổi thành một đối số].

Ví dụ:

df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

3
df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

4

Mô -đun này có thể giúp cuộc sống đơn giản hơn khi làm việc với các bộ dữ liệu bao gồm nhiều múi giờ khác nhau.

Làm việc với các đối tượng DateTime Pandas

Các nhà khoa học dữ liệu yêu thích & nbsp; ________ 145 & nbsp; vì nhiều lý do. Một trong số đó là nó chứa các khả năng và tính năng rộng lớn để làm việc với dữ liệu chuỗi thời gian. Giống như & nbsp; ________ 61 & nbsp; chính nó, gandas có cả & nbsp; ____ ____ 61 & nbsp; và & nbsp;

Chúng ta có thể chuyển đổi các chuỗi văn bản ngày, thời gian và thời lượng thành các đối tượng DateTime Pandas bằng cách sử dụng các chức năng này:

  • TO_DATETIME []: Chuyển đổi ngày và thời gian chuỗi thành các đối tượng DateTime Python.: Converts string dates and times into Python datetime objects.
  • TO_TIMEDELTA []: Tìm sự khác biệt về thời gian về ngày, giờ, phút và giây.: Finds differences in times in terms of days, hours, minutes, and seconds.

Và như chúng tôi sẽ thấy, các chức năng này thực sự khá tốt trong việc chuyển đổi các chuỗi thành các đối tượng DateTime Python bằng cách phát hiện định dạng của chúng một cách tự động, mà không cần chúng tôi xác định nó bằng cách sử dụng các mẫu strftime.

Hãy cùng xem một ví dụ nhanh:

df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

5
df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

6

Lưu ý rằng mặc dù chúng tôi đã cho nó một chuỗi với một số yếu tố phức tạp như của một người khác và và sep sep, chứ không phải là ngày 9 tháng 9. Hoặc tháng 9, tháng 9, Pandas đã có thể phân tích chính xác chuỗi và trả về một ngày được định dạng.

Chúng ta cũng có thể sử dụng gấu trúc [và một số chức năng numpy liên kết của nó] để tạo phạm vi ngày tự động dưới dạng loạt gandas. Dưới đây, ví dụ, chúng tôi tạo ra một loạt mười hai ngày bắt đầu từ ngày chúng tôi xác định ở trên. Sau đó, chúng tôi tạo một loạt ngày khác bắt đầu từ một ngày được xác định trước bằng cách sử dụng & nbsp; ________ 149:

df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

7
df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

8

Nhận năm, tháng, ngày, giờ, phút ở Pandas

Chúng ta có thể dễ dàng nhận được một năm, tháng, ngày, giờ hoặc phút từ ngày trong một cột của gấu trúc DataFrame bằng cách sử dụng & nbsp; ________ 150 & nbsp; thuộc tính cho tất cả các cột. Ví dụ: chúng ta có thể sử dụng & nbsp; ________ 151 & nbsp; chỉ trích xuất năm từ cột gấu trúc bao gồm toàn bộ ngày.

Để khám phá điều này, hãy để Lôi tạo một DataFrame nhanh bằng một trong những loạt chúng tôi đã tạo ở trên:

df.col = df.col.str.replace['/.+/','/']
print [df]
        col
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007

print [type[df.loc[0,'col']]]

9

ngày01234
2019-08-10
2019-08-11
2019-08-12
2019-08-13
2019-08-14

Bây giờ, hãy để Lôi tạo các cột riêng biệt cho từng phần tử của ngày bằng cách sử dụng các thuộc tính Python DateTime [được truy cập với & NBSP; ____ 150] có liên quan:

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
0

ngày2019-08-102019-08-112019-08-122019-08-132019-08-1401234
2019-08-102019 8 10 0 0
2019-08-112019 8 11 0 0
2019-08-122019 8 12 0 0
2019-08-132019 8 13 0 0
2019-08-142019 8 14 0 0

Bây giờ, hãy để Lôi tạo các cột riêng biệt cho từng phần tử của ngày bằng cách sử dụng các thuộc tính Python DateTime [được truy cập với & NBSP; ____ 150] có liên quan:

năm

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
1

ngày2019-08-102019-08-112019-08-122019-08-132019-08-14Bây giờ, hãy để Lôi tạo các cột riêng biệt cho từng phần tử của ngày bằng cách sử dụng các thuộc tính Python DateTime [được truy cập với & NBSP; ____ 150] có liên quan:day_namenăm01234
2019-08-102019 8 10 0 0 5 2019-08-11222
2019-08-112019 8 11 0 0 6 2019-08-12223
2019-08-122019 8 12 0 0 0 2019-08-13224
2019-08-132019 8 13 0 0 1 2019-08-14225
2019-08-142019 8 14 0 0 2 Bây giờ, hãy để Lôi tạo các cột riêng biệt cho từng phần tử của ngày bằng cách sử dụng các thuộc tính Python DateTime [được truy cập với & NBSP; ____ 150] có liên quan:226

năm

tháng

ngày

In [32]:
df['date'] =df['date'].str.split['/'].str[0] + '/'  + df['date'].str.split['/'].str[-1]
df

Out[32]:
       date
0   10/2009
1   12/2009
2    4/2009
3    8/2007
4    7/2008
5    6/2009
6    1/2009
7   12/2007
8    9/2009
9    2/2006
10   3/2009
11   2/2007
2

ngày2019-08-102019-08-112019-08-122019-08-132019-08-14Bây giờ, hãy để Lôi tạo các cột riêng biệt cho từng phần tử của ngày bằng cách sử dụng các thuộc tính Python DateTime [được truy cập với & NBSP; ____ 150] có liên quan:day_namenămngày2019-08-102019-08-112019-08-122019-08-132019-08-14
2019-08-102019 8 10 0 0 5 2019-08-11222
2019-08-112019 8 11 0 0 6 2019-08-12223
2019-08-122019 8 12 0 0 0 2019-08-13224
2019-08-132019 8 13 0 0 1 2019-08-14225
2019-08-142019 8 14 0 0 2 Bây giờ, hãy để Lôi tạo các cột riêng biệt cho từng phần tử của ngày bằng cách sử dụng các thuộc tính Python DateTime [được truy cập với & NBSP; ____ 150] có liên quan:226

năm

tháng

ngày

giờ

phútclick to sign up for free and start learning instantly!

Làm thế nào để bạn chuyển đổi một ngày sang tháng và năm ở Python?

Phương pháp 1: Sử dụng thuộc tính datetimeindex.month để tìm tháng và sử dụng thuộc tính datetimeIndex.year để tìm năm có mặt trong ngày.Use DatetimeIndex. month attribute to find the month and use DatetimeIndex. year attribute to find the year present in the Date.

Làm thế nào để bạn thay đổi ngày sang tháng và năm ở gấu trúc?

Timezone-nhận biết và dấu thời gian ngây thơ trong gấu trúc..
Bước 1: Tạo DataFrame với các giá trị DateTime ..
Bước 2: Trích xuất Năm và Tháng với .DT.TO_PERIOD ['M'] - Định dạng yyyy -mm ..
Bước 3: Trích xuất năm và tháng các định dạng khác mm/yyyy ..
Bước 4: Trích xuất năm và tháng riêng biệt và kết hợp chúng ..

Làm cách nào để trích xuất tháng và năm kể từ ngày?

Sử dụng công thức sau liên quan đến chức năng văn bản để trích xuất tháng và năm kể từ ngày:..
=TEXT[B3,"mmm/yy"].
=MONTH[B3].
=YEAR[B3].
=CONCAT[C3,"/",D3].

Làm cách nào để thay đổi định dạng của một đối tượng DateTime trong Python?

Chức năng được sử dụng.Strftime [] có thể thay đổi định dạng ngày trong Python.strftime[] can change the date format in python.

Bài Viết Liên Quan

Chủ Đề