Hướng dẫn how do i join month and year in python? - làm cách nào để tham gia tháng và năm trong python?

Tôi có một khung dữ liệu bao gồm các cột riêng biệt cho năm, tháng và ngày. Tôi đã cố gắng kết hợp các cột riêng lẻ này thành một ngày bằng cách sử dụng:

df['myDt']=pd.to_datetime(df[['year','month','day']])

Chỉ để có được lỗi sau: "Để lắp ráp các ánh xạ yêu cầu ít nhất [năm, tháng, ngày] được chỉ định: [ngày, tháng, năm] bị thiếu". Không chắc điều này có nghĩa là gì .... Tôi đã cung cấp các cột có liên quan. Khi kiểm tra các kiểu dữ liệu, tôi thấy rằng các cột năm, tháng và ngày là Int64. Điều đó sẽ gây ra một vấn đề? Cảm ơn, Chet

Cảm ơn tất cả các bạn đã đăng. Theo đề xuất, tôi đang đăng tập dữ liệu mẫu trước: ________ 14

Nguồn dữ liệu là: https: //www.quandl.com/data/eia/seo_ngprpus_m Tôi đã nhập dữ liệu như sau: 1. Nhập Quandl (Cài đặt Conda được sử dụng đầu tiên) 2. Đã sử dụng mã Python của Quandl:

data = Quandl.get ("EIA/STEO_NGPRPUS_M", authToken = "token", "2005-01-01", "2005-12-31") 4. Chỉ cần lưu ý, dữ liệu gốc chỉ đi kèm với cột giá trị, và DateTime dưới dạng chỉ mục. Tôi đã trích xuất và tạo các cột mm, yy và dd (tháng, năm và dd là một vectơ cột được đặt thành 1) tất cả những gì tôi đang cố gắng làm là tạo một cột khác được gọi là "đầu tiên của tháng" - vì vậy mỗi ngày Mỗi tháng, cột sẽ chỉ hiển thị "mm/yy/1". Tôi sẽ thử tất cả các đề xuất dưới đây trong thời gian ngắn và liên hệ lại với các bạn. Cảm ơn!!

Xem xét các dữ liệu sau:

import pandas as pd
5

import pandas as pd
6

import pandas as pd
7

Dung dịch

Để kết hợp các cột

import pandas as pd
8,
import pandas as pd
9 và
path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv"
df = pd.read_csv(path2data)
0 để tạo thành một cột khác:

import pandas as pd
5

path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv"
df = pd.read_csv(path2data)
2

import pandas as pd
7

Ở đây, cột

path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv"
df = pd.read_csv(path2data)
4 thuộc loại
path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv"
df = pd.read_csv(path2data)
5.

Giải trình

Trước tiên chúng tôi kết hợp các cột

import pandas as pd
8,
import pandas as pd
9 và
path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv"
df = pd.read_csv(path2data)
0 thông qua sự kết hợp chuỗi đơn giản:

import pandas as pd
5

df.head()

year	month	day
0	2012	1	1
1	2012	1	2
2	2012	1	3
3	2012	1	4
4	2012	1	5
0

import pandas as pd
7

Ở đây, cột kết hợp (

df.head()

year	month	day
0	2012	1	1
1	2012	1	2
2	2012	1	3
3	2012	1	4
4	2012	1	5
2) thuộc loại
df.head()

year	month	day
0	2012	1	1
1	2012	1	2
2	2012	1	3
3	2012	1	4
4	2012	1	5
3. Chúng ta có thể chuyển đổi kiểu dữ liệu của nó thành
path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv"
df = pd.read_csv(path2data)
5 bằng cách sử dụng
df.head()

year	month	day
0	2012	1	1
1	2012	1	2
2	2012	1	3
3	2012	1	4
4	2012	1	5
5:

import pandas as pd
5

df.head()

year	month	day
0	2012	1	1
1	2012	1	2
2	2012	1	3
3	2012	1	4
4	2012	1	5
7

import pandas as pd
7

Bạn đang ở đây: Trang chủ/ Python/ Cách kết hợp các cột năm, tháng và ngày để một ngày ở PandasHome / Python / How to Combine Year, Month, and Day Columns to single date in Pandas

Trong bài đăng này, chúng ta sẽ thấy cách kết hợp các cột chứa năm, tháng và ngày thành một cột duy nhất của loại DateTime. Chúng ta có thể kết hợp nhiều cột vào một cột ngày duy nhất theo nhiều cách. Đầu tiên, chúng ta sẽ thấy làm thế nào chúng ta có thể kết hợp cột năm, tháng và ngày thành một cột của loại DateTime, trong khi đọc dữ liệu bằng hàm pandas read_csv (). Tiếp theo, chúng tôi sẽ kết hợp các cột năm, tháng và ngày bằng cách sử dụng hàm Pandas application ().

Đầu tiên, chúng ta hãy tải gấu trúc.

import pandas as pd

Chúng tôi sẽ sử dụng dữ liệu mẫu chỉ chứa ba cột, năm, tháng và ngày. Chúng tôi sẽ tải dữ liệu trực tiếp từ trang GitHub.

path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv"
df = pd.read_csv(path2data)

Dữ liệu của chúng tôi trông như thế này.

df.head()

year	month	day
0	2012	1	1
1	2012	1	2
2	2012	1	3
3	2012	1	4
4	2012	1	5

Kết hợp các cột năm, tháng và ngày vào cột DateTime trong khi đọc tệp

Một trong những cách để kết hợp 3 cột tương ứng với năm, tháng và ngày trong một khung dữ liệu là phân tích chúng là biến ngày trong khi tải tệp dưới dạng gấu trúc DataFrame.

Trong khi tải tệp dưới dạng khung dữ liệu Pandas bằng cách sử dụng hàm read_csv (), chúng tôi có thể chỉ định các tên cột sẽ được kết hợp vào cột DateTime. Chúng tôi sẽ sử dụng đối số của par par_dates đối với hàm read_csv () và cung cấp các cột năm, tháng và ngày làm giá trị cho từ điển với biến ngày mới làm khóa.

df = pd.read_csv(path2data,
                 parse_dates= {"date" : ["year","month","day"]})

Bây giờ pandas xông read_csv () kết hợp các cột đó vào một cột ngày duy nhất. Và chúng ta có thể kiểm tra kiểu dữ liệu của biến mới bằng hàm pandas thông tin ().

df.info()

Chúng ta có thể thấy rằng đó là một đối tượng của loại DateTime [ns].


RangeIndex: 100 entries, 0 to 99
Data columns (total 1 columns):
 #   Column  Non-Null Count  Dtype         
---  ------  --------------  -----         
 0   date    100 non-null    datetime64[ns]
dtypes: datetime64[ns](1) <===
memory usage: 928.0 bytes

Cũng lưu ý rằng trong khi kết hợp ba cột vào một cột ngày duy nhất, ba cột ba không nằm trong khung dữ liệu. Nếu bạn, chúng tôi muốn giữ ba cột sau khi kết hợp chúng thành DateTime, chúng tôi cần sử dụng

df = pd.read_csv(path2data,
                 parse_dates= {"date" : ["year","month","day"]},
                keep_date_col=True)

Bây giờ chúng tôi có bốn cột bao gồm cột năm, tháng và ngày ban đầu

df.head()

RangeIndex: 100 entries, 0 to 99
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype         
---  ------  --------------  -----         
 0   date    100 non-null    datetime64[ns]
 1   year    100 non-null    object        
 2   month   100 non-null    object        
 3   day     100 non-null    object        
dtypes: datetime64[ns](1), object(3)
memory usage: 3.2+ KB

Kết hợp các cột tháng, năm và ngày với gấu trúc áp dụng ()

Một cách tiếp cận khác để kết hợp nhiều cột vào một cột ngày đầu tiên bằng cách dán ba cột bằng cách sử dụng hàm application ().

Trong ví dụ này, chúng tôi chỉ định các cột quan tâm. Trong DataFrame mẫu của chúng tôi, đó là tất cả các cột. Và sau đó sử dụng hàm lambda để kết hợp ba giá trị theo một hàng bằng hàm nối ().

import pandas as pd
0

Bây giờ chúng tôi có một cột mới cho ngày.

import pandas as pd
1

Chúng ta có thể sử dụng hàm thông tin () để thấy rằng biến mới chưa phải là đối tượng DateTime.

import pandas as pd
2

Chúng ta có thể chuyển đổi cột ngày thành loại DateTime bằng cách sử dụng hàm pandas to_dateTime () như trong bài đăng.

import pandas as pd
3