Hướng dẫn extract month and year from string python - trích xuất tháng và năm từ chuỗi trăn

Cuối cùng, bạn có thể muốn điều này trong một khung dữ liệu vì bạn đã gắn thẻ nó (xem câu trả lời của Andrej), nhưng dù sao đi nữa, bạn có thể phân tích các ngày từ chuỗi với nội suy:

fr"(?i)((?:{months}) *\d{{4}}) *(?:-|–) *(present|(?:{months}) *\d{{4}})"

Trong đó {months} là một nhóm xen kẽ gồm tất cả các tên tháng và chữ viết tắt có thể.

import calendar
import re
from datetime import datetime
from dateutil.relativedelta import relativedelta

text = """Wipro Limited | Hyderabad, IN                Dec 2017 – Present
Project Analyst 

Infosys | Delhi, IN                Apr 2017 – Nov 2017 
Software Developer 

HCL Technologies | Hyderabad, IN                Jun 2016 – Mar 2017 
Software Engineer  
"""

def parse_date(x, fmts=("%b %Y", "%B %Y")):
    for fmt in fmts:
        try:
            return datetime.strptime(x, fmt)
        except ValueError:
            pass

months = "|".join(calendar.month_abbr[1:] + calendar.month_name[1:])
pattern = fr"(?i)((?:{months}) *\d{{4}}) *(?:-|–) *(present|(?:{months}) *\d{{4}})"
total_experience = None

for start, end in re.findall(pattern, text):
    if end.lower() == "present":
        today = datetime.today()
        end = f"{calendar.month_abbr[today.month]} {today.year}"

    duration = relativedelta(parse_date(end), parse_date(start))

    if total_experience:
        total_experience += duration
    else: 
        total_experience = duration

    print(f"{start}-{end} ({duration.years} years, {duration.months} months)")

if total_experience:
    print(f"total experience:  {total_experience.years} years, {total_experience.months} months")
else:
    print("couldn't parse text")

Output:

Dec 2017-May 2020 (2 years, 5 months)
Apr 2017-Nov 2017 (0 years, 7 months)
Jun 2016-Mar 2017 (0 years, 9 months)
total experience:  3 years, 9 months

Nhập các mô -đun

import pandas as pd
import numpy as np
import datetime

Tạo dataframe 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 tácbirth_datefavorite_colorlớpTên
Willard Morris20 01-02-1996màu xanh da trời88 Willard Morris
01-02-199619 màu xanh da trờiAl Jennings92 01-02-1996
màu xanh da trời22 Al Jennings08-05-199795 màu xanh da trời
Al Jennings21 08-05-1997màu đỏ70 Al Jennings

08-05-1997

màu đỏ
tuổi tácbirth_datefavorite_colorlớpTênWillard Morris
Willard Morris20 01-02-1996màu xanh da trời88 Willard Morris1996
01-02-199619 màu xanh da trờiAl Jennings92 01-02-19961997
màu xanh da trời22 Al Jennings08-05-199795 màu xanh da trời1996
Al Jennings21 08-05-1997màu đỏ70 Al Jennings1995

08-05-1997

màu đỏ
tuổi tácbirth_datefavorite_colorlớpTênWillard Morris01-02-1996
Willard Morris20 01-02-1996màu xanh da trời88 Willard Morris1996 1
01-02-199619 màu xanh da trờiAl Jennings92 01-02-19961997 8
màu xanh da trời22 Al Jennings08-05-199795 màu xanh da trời1996 4
Al Jennings21 08-05-1997màu đỏ70 Al Jennings1995 12
08-05-1997
tuổi tácbirth_datefavorite_colorlớpTênWillard Morris01-02-1996month_year
Willard Morris20 01-02-1996màu xanh da trời88 Willard Morris1996 1 01-02-1996
01-02-199619 màu xanh da trờiAl Jennings92 01-02-19961997 8 màu xanh da trời
màu xanh da trời22 Al Jennings08-05-199795 màu xanh da trời1996 4 Al Jennings
Al Jennings21 08-05-1997màu đỏ70 Al Jennings1995 12 08-05-1997

Làm thế nào để bạn trích xuất tháng và năm từ một chuỗi trong Python?

Trích xuất ngày tháng và năm từ một chuỗi trong câu trả lời mã Python..
Nhập Datetime ..
ngày = '2021-05-21 11:22:03'.
datem = dateTime.ngày giờ.Strptime (ngày, "%y-%m-%d%h:%m:%s").
In (Datem. Ngày) # 25 ..
In (Datem. Tháng) # 5 ..
In (Datem. Năm) # 2021 ..
In (Datem. Giờ) # 11 ..
In (Datem. Phút) # 22 ..

Làm thế nào để bạn trích xuất tháng và năm kể từ một ngày ở Python?

Phương pháp 1: Sử dụng thuộc tính datetimeindex.month để tìm tháng và sử dụng thuộc tính datetimeIndex.year để tìm năm có mặt trong ngày.Use DatetimeIndex. month attribute to find the month and use DatetimeIndex. year attribute to find the year present in the Date.

Làm cách nào để trích xuất tháng và năm kể từ ngày?

Sử dụng công thức sau liên quan đến chức năng văn bản để trích xuất tháng và năm kể từ ngày:..
=TEXT(B3,"mmm/yy").
=MONTH(B3).
=YEAR(B3).
=CONCAT(C3,"/",D3).

Làm cách nào để chuyển đổi một chuỗi thành DateTime trong Python?

Chúng ta có thể chuyển đổi một chuỗi thành DateTime bằng hàm strptime ().Hàm này có sẵn trong các mô -đun DateTime và Time để phân tích một chuỗi vào các đối tượng DateTime và thời gian tương ứng.using strptime() function. This function is available in datetime and time modules to parse a string to datetime and time objects respectively.