Hướng dẫn how do i cut a datetime from a date in python? - làm cách nào để cắt ngày giờ khỏi ngày trong python?

Tôi có một biến bao gồm 300k bản ghi với ngày và ngày trông giống như 2015-02-21 12:08:51 kể từ ngày đó tôi muốn xóa thời gian
2015-02-21 12:08:51
from that date i want to remove time

loại biến ngày là pandas.core.series.series

Đây là cách tôi đã thử

from datetime import datetime,date
date_str = textdata['vfreceiveddate']  
format_string = "%Y-%m-%d"
then = datetime.strftime(date_str,format_string)   

một số lỗi ngẫu nhiên

Trong mã trên, TextData là DataSetName của tôi và ngày VFFRECE được sử dụng là một biến bao gồm ngày làm thế nào tôi có thể viết mã để xóa thời gian từ DateTime.
How can i write the code to remove the time from the datetime.

Hướng dẫn how do i cut a datetime from a date in python? - làm cách nào để cắt ngày giờ khỏi ngày trong python?

Edchum

356K195 Huy hiệu vàng778 Huy hiệu bạc550 Huy hiệu Đồng195 gold badges778 silver badges550 bronze badges

Đã hỏi ngày 27 tháng 3 năm 2015 lúc 20:59Mar 27, 2015 at 20:59

0

Giả sử tất cả các chuỗi DateTime của bạn ở định dạng tương tự sau đó chỉ cần chuyển đổi chúng thành DateTime bằng cách sử dụng

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
7 và sau đó gọi thuộc tính
In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
8 để chỉ nhận phần ngày:

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21

CHỈNH SỬA

Nếu bạn chỉ muốn thay đổi màn hình chứ không phải DTYPE thì bạn có thể gọi

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
9:

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21

Bạn có thể thấy rằng DTYPE vẫn là

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
0:

In[11]:
df.dtypes

Out[11]: 
date    datetime64[ns]
dtype: object

Đã trả lời ngày 27 tháng 3 năm 2015 lúc 21:04Mar 27, 2015 at 21:04

EdchumedchumEdChum

356K195 Huy hiệu vàng778 Huy hiệu bạc550 Huy hiệu Đồng195 gold badges778 silver badges550 bronze badges

0

Đã hỏi ngày 27 tháng 3 năm 2015 lúc 20:59unbound method; but you're passing it a string instead of a datetime instance, whence the obvious error.

Giả sử tất cả các chuỗi DateTime của bạn ở định dạng tương tự sau đó chỉ cần chuyển đổi chúng thành DateTime bằng cách sử dụng

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
7 và sau đó gọi thuộc tính
In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
8 để chỉ nhận phần ngày:

CHỈNH SỬAcan use

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
0, but then you need to parse the string first, not format it -- hence, strptime, not strftime:

dt = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
date = dt.date()

Nếu bạn chỉ muốn thay đổi màn hình chứ không phải DTYPE thì bạn có thể gọi

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
9:

Bạn có thể thấy rằng DTYPE vẫn là

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
0:Mar 27, 2015 at 21:56

Đã trả lời ngày 27 tháng 3 năm 2015 lúc 21:04Alex Martelli

Edchumedchum164 gold badges1205 silver badges1385 bronze badges

Bạn đang gọi

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
1, yêu cầu là đối số đầu tiên của nó là một ví dụ
In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
2, bởi vì đó là một phương thức không liên kết; Nhưng bạn đang chuyển nó một chuỗi thay vì một thể hiện DateTime, từ đó là lỗi rõ ràng.

Bạn có thể làm việc hoàn toàn ở cấp độ chuỗi nếu đó là kết quả bạn muốn; Với dữ liệu bạn đưa ra làm ví dụ, ví dụ

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
3 sẽ chính xác là chuỗi
In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
4 mà bạn dường như yêu cầu.

Hoặc, bạn có thể sử dụng

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
0, nhưng sau đó bạn cần phân tích chuỗi trước, không định dạng nó - do đó, Strptime, không phải là thời gian:Jan 13 at 13:53

Trong hướng dẫn này, chúng tôi sẽ xem xét cách loại bỏ thành phần thời gian từ một ngày trong gấu trúc với sự trợ giúp của một số ví dụ.

Hướng dẫn how do i cut a datetime from a date in python? - làm cách nào để cắt ngày giờ khỏi ngày trong python?

Nếu bạn làm việc với ngày DateTime Pandas thì bạn chỉ cần gọi hàm

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
8 hoặc nếu bạn làm việc với loạt gấu trúc, bạn có thể sử dụng thuộc tính
In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
9 để xóa thời gian từ ngày. Điều này tương tự như chỉ nhận được một năm hoặc tháng kể từ ngày gấu trúc. Sau đây là cú pháp:

# remove time from a pandas timestamp object
sample_date.date()
# remove time from a pandas series of dates
df['Date'].dt.date

Lưu ý rằng nếu ngày không phải là ngày DateTime của Pandas, trước tiên bạn cần sử dụng

In[11]:
df.dtypes

Out[11]: 
date    datetime64[ns]
dtype: object
0 trước khi bạn có thể sử dụng thuộc tính
In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
8.

Hãy cùng xem xét một số ví dụ về việc sử dụng cú pháp trên.

1. Xóa thời gian từ ngày gấu trúc

Trước tiên, chúng ta hãy nhìn vào cách thời gian từ một đối tượng DateTime gấu trúc. Đối với điều này, áp dụng chức năng

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
8.

import pandas as pd

sample_date = pd.Timestamp("2020-04-16 08:30:00")
# display the date
print(sample_date)
# remove the time
print(sample_date.date())

Output:

2020-04-16 08:30:00
2020-04-16

Bạn có thể thấy rằng chúng tôi chỉ nhận được ngày mà không có thành phần thời gian của nó. Cũng lưu ý rằng loại ngày được trả lại là

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
6 trong khi ngày ban đầu là một đối tượng dấu thời gian Pandas.

print(type(sample_date))
print(type(sample_date.date()))

Output:


2. Xóa thời gian khỏi ngày trong cột gấu trúc

Để loại bỏ thời gian từ ngày trong loạt gấu trúc, bạn có thể sử dụng thuộc tính

In[10]:
df['date'] = pd.to_datetime(df['date']).dt.normalize()
df

Out[10]: 
        date
0 2015-02-21
9 trên loạt. Đây là một ví dụ -

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
0

Đầu ra:

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
1

Trước khi chúng tôi tiến hành loại bỏ thời gian, trước tiên chúng tôi cần chuyển đổi cột thành DateTime Pandas.

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
2

Bây giờ, hãy để thêm một cột mới vào DataFrame chứa ngày mà không có phần thời gian.

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
3

Output:

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
4

Bạn có thể thấy rằng ngày kết quả don don có thời gian với họ. Lưu ý rằng cột mới không có kiểu dữ liệu DateTime.

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
5

Output:

In [37]:

df = pd.DataFrame({'date':['2015-02-21 12:08:51']})
df
Out[37]:
                  date
0  2015-02-21 12:08:51
In [39]:

df['date'] = pd.to_datetime(df['date']).dt.date
df
Out[39]:
         date
0  2015-02-21
6

Với điều này, chúng tôi đi đến cuối hướng dẫn này. Các ví dụ và kết quả mã được trình bày trong hướng dẫn này đã được triển khai trong A & NBSP; Jupyter Notebook & NBSP; với hạt nhân Python (phiên bản 3.8.3) có Pandas phiên bản 1.0.5


Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.

  • Hướng dẫn how do i cut a datetime from a date in python? - làm cách nào để cắt ngày giờ khỏi ngày trong python?

    Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.

    Xem tất cả các bài viết