Hướng dẫn how do i separate date and time into two columns in python? - làm cách nào để tách ngày và giờ thành hai cột trong python?

Tôi có một khung dữ liệu gấu trúc với hơn 1000 dấu thời gian (bên dưới) mà tôi muốn lặp qua:

2016-02-22 14:59:44.561776

Tôi đang gặp khó khăn khi chia dấu thời gian này thành 2 cột- 'Ngày' và 'Thời gian'. Định dạng ngày có thể giữ nguyên, nhưng thời gian cần được chuyển đổi thành CST (bao gồm cả mili giây).

Cảm ơn đã giúp đỡ

Hướng dẫn how do i separate date and time into two columns in python? - làm cách nào để tách ngày và giờ thành hai cột trong python?

Fobersteiner

18,5K5 Huy hiệu vàng30 Huy hiệu bạc58 Huy hiệu đồng5 gold badges30 silver badges58 bronze badges

hỏi ngày 24 tháng 2 năm 2016 lúc 7:21Feb 24, 2016 at 7:21

0

Có vấn đề tương tự và điều này đã làm việc cho tôi.

Giả sử cột ngày trong tập dữ liệu của bạn được gọi là "ngày"

import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time

Điều này sẽ cung cấp cho bạn hai cột "ngày" và "thời gian" với ngày chia tách.

Đã trả lời ngày 20 tháng 11 năm 2017 lúc 9:20Nov 20, 2017 at 9:20

OkroshiaShvilioKroshiashviliOkroshiashvili

3,3251 Huy hiệu vàng25 Huy hiệu bạc37 Huy hiệu đồng1 gold badge25 silver badges37 bronze badges

0

Tôi không chắc tại sao bạn muốn làm điều này ngay từ đầu, nhưng nếu bạn thực sự phải ...

df = pd.DataFrame({'my_timestamp': pd.date_range('2016-1-1 15:00', periods=5)})

>>> df
         my_timestamp
0 2016-01-01 15:00:00
1 2016-01-02 15:00:00
2 2016-01-03 15:00:00
3 2016-01-04 15:00:00
4 2016-01-05 15:00:00

df['new_date'] = [d.date() for d in df['my_timestamp']]
df['new_time'] = [d.time() for d in df['my_timestamp']]

>>> df
         my_timestamp    new_date  new_time
0 2016-01-01 15:00:00  2016-01-01  15:00:00
1 2016-01-02 15:00:00  2016-01-02  15:00:00
2 2016-01-03 15:00:00  2016-01-03  15:00:00
3 2016-01-04 15:00:00  2016-01-04  15:00:00
4 2016-01-05 15:00:00  2016-01-05  15:00:00

Việc chuyển đổi sang CST là khó khăn hơn. Tôi cho rằng dấu thời gian hiện tại là 'không biết', tức là chúng không có múi giờ được đính kèm? Nếu không, làm thế nào bạn mong đợi để chuyển đổi chúng?

Để biết thêm chi tiết:

https://docs.python.org/2/library/datetime.html

Làm thế nào để làm cho một múi giờ không biết không biết trong Python

CHỈNH SỬA

Một phương pháp thay thế chỉ lặp một lần trên các dấu thời gian thay vì hai lần:

new_dates, new_times = zip(*[(d.date(), d.time()) for d in df['my_timestamp']])
df = df.assign(new_date=new_dates, new_time=new_times)

Đã trả lời ngày 24 tháng 2 năm 2016 lúc 7:33Feb 24, 2016 at 7:33

Hướng dẫn how do i separate date and time into two columns in python? - làm cách nào để tách ngày và giờ thành hai cột trong python?

AlexanderalexanderAlexander

Huy hiệu vàng 100K2828 gold badges190 silver badges186 bronze badges

0

Cách dễ nhất là sử dụng

import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
3
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
4, hoạt động trên các cột có
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
5 (xem
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
6). Đối với trường hợp này,
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
7 tạo ra một cột ví dụ với
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
5, do đó sử dụng
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
9 và
df = pd.DataFrame({'my_timestamp': pd.date_range('2016-1-1 15:00', periods=5)})

>>> df
         my_timestamp
0 2016-01-01 15:00:00
1 2016-01-02 15:00:00
2 2016-01-03 15:00:00
3 2016-01-04 15:00:00
4 2016-01-05 15:00:00

df['new_date'] = [d.date() for d in df['my_timestamp']]
df['new_time'] = [d.time() for d in df['my_timestamp']]

>>> df
         my_timestamp    new_date  new_time
0 2016-01-01 15:00:00  2016-01-01  15:00:00
1 2016-01-02 15:00:00  2016-01-02  15:00:00
2 2016-01-03 15:00:00  2016-01-03  15:00:00
3 2016-01-04 15:00:00  2016-01-04  15:00:00
4 2016-01-05 15:00:00  2016-01-05  15:00:00
0:

df = pd.DataFrame({'full_date': pd.date_range('2016-1-1 10:00:00.123', periods=10, freq='5H')})
df['date'] = df['full_date'].dt.date
df['time'] = df['full_date'].dt.time

In [166]: df
Out[166]:
                full_date        date             time
0 2016-01-01 10:00:00.123  2016-01-01  10:00:00.123000
1 2016-01-01 15:00:00.123  2016-01-01  15:00:00.123000
2 2016-01-01 20:00:00.123  2016-01-01  20:00:00.123000
3 2016-01-02 01:00:00.123  2016-01-02  01:00:00.123000
4 2016-01-02 06:00:00.123  2016-01-02  06:00:00.123000
5 2016-01-02 11:00:00.123  2016-01-02  11:00:00.123000
6 2016-01-02 16:00:00.123  2016-01-02  16:00:00.123000
7 2016-01-02 21:00:00.123  2016-01-02  21:00:00.123000
8 2016-01-03 02:00:00.123  2016-01-03  02:00:00.123000
9 2016-01-03 07:00:00.123  2016-01-03  07:00:00.123000

Hướng dẫn how do i separate date and time into two columns in python? - làm cách nào để tách ngày và giờ thành hai cột trong python?

Đã trả lời ngày 24 tháng 2 năm 2016 lúc 7:47Feb 24, 2016 at 7:47

Anton Protopopovanton ProtopopovAnton Protopopov

28.5K11 Huy hiệu vàng84 Huy hiệu bạc90 Huy hiệu đồng11 gold badges84 silver badges90 bronze badges

0

Nếu dấu thời gian của bạn đã ở định dạng gấu trúc (không phải chuỗi), thì:

df["date"] = df["timestamp"].date
dt["time"] = dt["timestamp"].time

Nếu dấu thời gian của bạn là một chuỗi, bạn có thể phân tích nó bằng mô -đun DateTime:

from datetime import datetime
data1["timestamp"] = df["timestamp"].apply(lambda x: \
    datetime.strptime(x,"%Y-%m-%d %H:%M:%S.%f"))

Nguồn: http://pandas.pydata.org/pandas-docs/stable/timeseries.html

Đã trả lời ngày 24 tháng 2 năm 2016 lúc 7:35Feb 24, 2016 at 7:35

Mathieu Bmathieu bMathieu B

4494 Huy hiệu bạc12 Huy hiệu đồng4 silver badges12 bronze badges

Nếu dấu thời gian của bạn là một chuỗi, bạn có thể chuyển đổi nó thành đối tượng

df = pd.DataFrame({'my_timestamp': pd.date_range('2016-1-1 15:00', periods=5)})

>>> df
         my_timestamp
0 2016-01-01 15:00:00
1 2016-01-02 15:00:00
2 2016-01-03 15:00:00
3 2016-01-04 15:00:00
4 2016-01-05 15:00:00

df['new_date'] = [d.date() for d in df['my_timestamp']]
df['new_time'] = [d.time() for d in df['my_timestamp']]

>>> df
         my_timestamp    new_date  new_time
0 2016-01-01 15:00:00  2016-01-01  15:00:00
1 2016-01-02 15:00:00  2016-01-02  15:00:00
2 2016-01-03 15:00:00  2016-01-03  15:00:00
3 2016-01-04 15:00:00  2016-01-04  15:00:00
4 2016-01-05 15:00:00  2016-01-05  15:00:00
1:

from datetime import datetime

timestamp = '2016-02-22 14:59:44.561776'
dt = datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S.%f')

Từ đó trở đi, bạn có thể mang nó đến bất kỳ định dạng nào bạn thích.

Đã trả lời ngày 24 tháng 2 năm 2016 lúc 7:39Feb 24, 2016 at 7:39

Hướng dẫn how do i separate date and time into two columns in python? - làm cách nào để tách ngày và giờ thành hai cột trong python?

pp_pp_pp_

3.3874 Huy hiệu vàng18 Huy hiệu bạc27 Huy hiệu đồng4 gold badges18 silver badges27 bronze badges

Thử

s = '2016-02-22 14:59:44.561776'

date,time = s.split()

Sau đó chuyển đổi thời gian khi cần thiết.

Nếu bạn muốn chia thêm thời gian,

hour, minute, second = time.split(':')

Đã trả lời ngày 24 tháng 2 năm 2016 lúc 7:27Feb 24, 2016 at 7:27

Hướng dẫn how do i separate date and time into two columns in python? - làm cách nào để tách ngày và giờ thành hai cột trong python?

WRKYLEWRKYLEwrkyle

58212 Huy hiệu bạc35 Huy hiệu Đồng12 silver badges35 bronze badges

thử cái này:

import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
0

Fabio Lamanna

Huy hiệu vàng 19.2K2222 gold badges90 silver badges121 bronze badges

Đã trả lời ngày 24 tháng 2 năm 2016 lúc 7:33Feb 24, 2016 at 7:33

Alexanderalexandersingle liner

import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
1

Huy hiệu vàng 100K28Sep 5, 2021 at 8:07

Cách dễ nhất là sử dụng

import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
3
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
4, hoạt động trên các cột có
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
5 (xem
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
6). Đối với trường hợp này,
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
7 tạo ra một cột ví dụ với
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
5, do đó sử dụng
import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
9 và
df = pd.DataFrame({'my_timestamp': pd.date_range('2016-1-1 15:00', periods=5)})

>>> df
         my_timestamp
0 2016-01-01 15:00:00
1 2016-01-02 15:00:00
2 2016-01-03 15:00:00
3 2016-01-04 15:00:00
4 2016-01-05 15:00:00

df['new_date'] = [d.date() for d in df['my_timestamp']]
df['new_time'] = [d.time() for d in df['my_timestamp']]

>>> df
         my_timestamp    new_date  new_time
0 2016-01-01 15:00:00  2016-01-01  15:00:00
1 2016-01-02 15:00:00  2016-01-02  15:00:00
2 2016-01-03 15:00:00  2016-01-03  15:00:00
3 2016-01-04 15:00:00  2016-01-04  15:00:00
4 2016-01-05 15:00:00  2016-01-05  15:00:00
0:arun

Đã trả lời ngày 24 tháng 2 năm 2016 lúc 7:473 silver badges7 bronze badges

Anton Protopopovanton Protopopov

import pandas as pd
df = pd.read_csv(file_path)

df['Dates'] = pd.to_datetime(df['date']).dt.date
df['Time'] = pd.to_datetime(df['date']).dt.time
2

28.5K11 Huy hiệu vàng84 Huy hiệu bạc90 Huy hiệu đồngJun 10 at 22:59

Hướng dẫn how do i separate date and time into two columns in python? - làm cách nào để tách ngày và giờ thành hai cột trong python?

Làm cách nào để phân tách ngày và thời gian thành hai cột gấu trúc?

Bước 1 - Nhập thư viện. Nhập GANDAS dưới dạng PD. ....
Bước 2 - Thiết lập dữ liệu. Chúng tôi đã tạo một khung dữ liệu trống sau đó chúng tôi đã tạo một cột 'ngày'. ....
Bước 3 - Tạo các tính năng của tem thời gian ngày. Chúng tôi phải chia dấu thời gian ngày thành một vài tính năng như năm, tháng, ngày, giờ, phút và giây ..

Làm thế nào để bạn chia dữ liệu thành hai cột trong Python?

Chia () gấu trúc cung cấp một phương thức để phân chia chuỗi xung quanh một dấu phân cách/dấu phân cách được truyền.Sau đó, chuỗi có thể được lưu trữ dưới dạng danh sách trong một chuỗi hoặc nó cũng có thể được sử dụng để tạo nhiều khung dữ liệu cột từ một chuỗi phân tách duy nhất. Pandas provide a method to split string around a passed separator/delimiter. After that, the string can be stored as a list in a series or it can also be used to create multiple column data frames from a single separated string.

Làm thế nào để tôi tách một dấu thời gian từ ngày và giờ?

Nếu một ô chứa một ngày và thời gian kết hợp, bạn có thể sử dụng hàm INT để kéo giá trị thời gian vào một cột riêng ...
Thời gian - giờ, phút, thứ hai.Để tính giá trị thời gian, trừ giá trị số nguyên ngày từ ngày và thời gian kết hợp.....
Thời gian - giờ, phút.....
Thời gian - Giờ ..

Làm thế nào để bạn chia một cột ngày trong Python?

Làm thế nào để bạn chia một ngày trong Python?Tạo một danh sách các ngày và gán vào chức năng dataFrame.apply str.split bên trong cột '/' Delimiter to df ['date'].Create a list of dates and assign into dataframe. Apply str. split function inside '/' delimiter to df['date'] column.