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
Willard Morris | 20 | 01-02-1996 | màu xanh da trời | 88 | Willard Morris |
01-02-1996 | 19 | màu xanh da trời | Al Jennings | 92 | 01-02-1996 |
màu xanh da trời | 22 | Al Jennings | 08-05-1997 | 95 | màu xanh da trời |
Al Jennings | 21 | 08-05-1997 | màu đỏ | 70 | Al Jennings |
08-05-1997
màu đỏWillard Morris | 20 | 01-02-1996 | màu xanh da trời | 88 | Willard Morris | 1996 |
01-02-1996 | 19 | màu xanh da trời | Al Jennings | 92 | 01-02-1996 | 1997 |
màu xanh da trời | 22 | Al Jennings | 08-05-1997 | 95 | màu xanh da trời | 1996 |
Al Jennings | 21 | 08-05-1997 | màu đỏ | 70 | Al Jennings | 1995 |
08-05-1997
màu đỏWillard Morris | 20 | 01-02-1996 | màu xanh da trời | 88 | Willard Morris | 1996 | 1 |
01-02-1996 | 19 | màu xanh da trời | Al Jennings | 92 | 01-02-1996 | 1997 | 8 |
màu xanh da trời | 22 | Al Jennings | 08-05-1997 | 95 | màu xanh da trời | 1996 | 4 |
Al Jennings | 21 | 08-05-1997 | màu đỏ | 70 | Al Jennings | 1995 | 12 |
Willard Morris | 20 | 01-02-1996 | màu xanh da trời | 88 | Willard Morris | 1996 | 1 | 01-02-1996 |
01-02-1996 | 19 | màu xanh da trời | Al Jennings | 92 | 01-02-1996 | 1997 | 8 | màu xanh da trời |
màu xanh da trời | 22 | Al Jennings | 08-05-1997 | 95 | màu xanh da trời | 1996 | 4 | Al Jennings |
Al Jennings | 21 | 08-05-1997 | màu đỏ | 70 | Al Jennings | 1995 | 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.