Làm cách nào để chuyển đổi số thành tháng trong gấu trúc Python?

mô-đun nhập khẩu

import pandas as pd
import numpy as np
import datetime

tạo khung dữ liệu giả

raw_data = {'name': ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel'],
'age': [20, 19, 22, 21],
'favorite_color': ['blue', 'red', 'yellow', "green"],
'grade': [88, 92, 95, 70],
'birth_date': ['01-02-1996', '08-05-1997', '04-28-1996', '12-16-1995']}
df = pd.DataFrame[raw_data, index = ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel']]
df
tuổi_ngày_sinh_yêu_thích_màu_lớptênWillard Morris2001-02-1996màu xanh da trời88Willard MorrisAl Jennings1908-05-1997màu đỏ92Al JenningsOmar Mullins2204-28-1996màu vàng95Omar MullinsSpencer McDaniel2112-16-1995màu xanh lá cây70Spencer McDaniel

tạo một cột mới với năm của trường ngày 'birth_date'

tuổibirth_datefavorite_colorgradenameyearWillard Morris2001-02-1996blue88Willard Morris1996Al Jennings1908-05-1997red92Al Jennings1997Omar Mullins2204-28-1996vàng95Omar Mullins1996Spencer McDaniel2112-16-1995green70Spencer McDaniel1995

tạo một cột mới với trường tháng ngày 'birth_date'

agebirth_datefavorite_colorgradenameyearmonthWillard Morris2001-02-1996blue88Willard Morris19961Al Jennings1908-05-1997red92Al Jennings19978Omar Mullins2204-28-1996yellow95Omar Mullins19964Spencer McDaniel2112-16-1995green70Spencer McDaniel199512agebirth_datefavorite_colorgradenameyearmonthmonth_yearWillard Morris2001-02-1996blue88Willard Morris199611996-01Al Jennings1908-05-1997red92Al Jennings199781997-08Omar Mullins2204-28-1996yellow95Omar Mullins199641996-04Spencer McDaniel2112

Tôi đang cố gắng thực hiện một số phân tích về dữ liệu khí hậu trong đó tôi có DataFrame với nhiều cột ngày khác nhau [Năm, Tháng, Ngày] và tôi cảm thấy như mình đang thiếu một yếu tố tổng hợp nào đó có thể giúp tôi hình dung rõ hơn về xu hướng trong những năm qua. . Sau đó, tôi nghĩ, tại sao không phải là mùa?

Tôi quyết định viết một chức năng nhanh chóng cho phép tôi làm điều này một cách đáng tin cậy. nó không nhanh. Nó khiến tôi bối rối trong vài giờ khi tôi thử các biến thể khác nhau của mã của mình

Tôi không muốn đi theo con đường if, elif mỗi tháng, vì vậy tôi đã tìm kiếm kiến ​​thức về Stack Overflow để xem liệu có điều gì tôi còn thiếu sau khi nhận được một ngoại lệ TypeError khác không

Điều đầu tiên tôi làm là tạo một DataFrame thử nghiệm chứa một cột tháng trong đó mà tôi có thể sử dụng để dễ dàng kiểm tra xem chức năng của mình có hoạt động hay không

Sau khi tạo DataFrame thử nghiệm, tôi đã viết hàm lấy số tháng và bán cầu và chuyển đổi nó thành mùa chính xác

Nếu bạn đã sử dụng tập lệnh này bằng cách nhập thủ công số tháng và bán cầu [i. e. 1 và Nam = Mùa hè. 1 và Northern = Winter] thì nó sẽ in ra mùa tương ứng. Tuy nhiên, tôi phát hiện ra rằng việc sử dụng nó để tạo một cột mới trong DataFrame của gấu trúc cần nhiều công việc hơn một chút so với việc chỉ gọi hàm trên cột mục tiêu

Mã được cải tiến ở trên sử dụng chức năng để điền danh sách mới với các mùa tương ứng, sau đó có thể được gán cho cột Mùa trong Khung dữ liệu đích

 

ví dụ 1

Bây giờ để chuyển đổi nó thành Datetime, chúng tôi sử dụng cú pháp đã đề cập trước đó. Vì trong ví dụ này, định dạng ngày là yyyymmdd, nên định dạng ngày có thể được biểu diễn như sau

format= '%Y%m%d'

Python3




# importing pandas package

import pandas as pd

 

format='%Y%m%d%H%M%S%F'
8

values3_______0

format= '%Y%m%d'
1
format= '%Y%m%d'
2_______3_______3_______3_______4
format= '%Y%m%d'
5
format= '%Y%m%d'
6
format= '%Y%m%d'
5
format= '%Y%m%d'
8
format= '%Y%m%d'
9

format='%y%m%d'
0_______13_______1
format='%y%m%d'
2
format='%y%m%d'
3
format= '%Y%m%d'
5
format='%y%m%d'
5
format= '%Y%m%d'
5
format='%y%m%d'
3
format='%y%m%d'
8

format='%y%m%d'
0____23_______0

 

format='%Y%m%d%H%M%S'
1
format= '%Y%m%d'
0
format='%Y%m%d%H%M%S'
3_______3_______0_______23_______5
format= '%Y%m%d'
2
format= '%Y%m%d'
5
format='%y%m%d'
1
format='%Y%m%d%H%M%S'
9

 

# creating a dataframe0

# creating a dataframe1

format= '%Y%m%d'
2
format='%y%m%d'
8
format= '%Y%m%d'
0 # creating a dataframe5
format= '%Y%m%d'
2
format= '%Y%m%d'
9# creating a dataframe8_______3_______0
format='%y%m%d'
47values1

Làm cách nào để chuyển đổi ngày thành tên tháng trong gấu trúc?

Ví dụ #1. Sử dụng sê-ri. dt. hàm month_name[] để trả về tên tháng của dữ liệu ngày giờ cơ sở trong đối tượng chuỗi đã cho.

Làm cách nào để lấy số tháng từ tên tháng trong Python DataFrame?

Sử dụng hàm strptime[] từ mô-đun datetime để chuyển đổi tên tháng thành số trong Python.

Chủ Đề