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à: //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 pd5
import pandas as pd6
import pandas as pd7
Dung dịch
Để kết hợp các cột
import pandas as pd8,
import pandas as pd9 và
path2data = "//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 pd5
path2data = "//raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv" df = pd.read_csv[path2data]2
import pandas as pd7
Ở đây, cột
path2data = "//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 = "//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 pd8,
import pandas as pd9 và
path2data = "//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 pd5
df.head[] year month day 0 2012 1 1 1 2012 1 2 2 2012 1 3 3 2012 1 4 4 2012 1 50
import pandas as pd7
Ở đâ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 52] 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 53. Chúng ta có thể chuyển đổi kiểu dữ liệu của nó thành
path2data = "//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 55:
import pandas as pd5
df.head[] year month day 0 2012 1 1 1 2012 1 2 2 2012 1 3 3 2012 1 4 4 2012 1 57
import pandas as pd7
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 = "//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]