판다에서 월과 년을 일로 변환

샤브샤브

나는 그것을 일로 변환하고 싶은 월과 년을 가진 데이터 프레임을 가지고 있습니다.

 Name     details
    
    prem     6 months probation included
    
    shaves    3 years 6 months  suspended
    
    geroge    48 hours work time
    
    julvie    4 years 20 days terms included 
    
   tiz        80 days work
   lamp       44 days work

여기에서 변경하고 싶습니다 3 years as 1095 days, 6 months as 186 days. 윤년도 포함될 수 있으며, 같은 다른 모든 단어를 제거 probation included, suspended하고 싶습니다. 모든 결과를 새 열에 표시하고 싶습니다.

예상 결과:

 Name     details                            Time
    
    prem     6 months probation included     186 days
    
    shaves    3 years 6 months suspended              1181 days
    
    geroge    48 hours work time             48 hours
    
    julvie    4 years 20 days terms included         1480 days
   tiz        80 days  work                      80 days
  lamp       44 days   work                      44 days
이스 르엘

사용 Series.str.extract숫자에서 가져 오기 년 몽, 스칼라에 의해 다음 여러 들어, 시작 날짜를 지정하지 않기 때문에 (이 예를 들어, 더 정확해야 year=365.2564days의한) Series.map의 조건에 의해, 그리고 마지막으로 추가 단위 numpy.where:

d = {'months': 31, 'years':365, 'hours':1, 'days':1}
df1 = df['details'].str.extract('(\d+)\s+(years|months|hours|days)', expand=True)
df['Time'] = df1[0].astype(float).mul(df1[1].map(d)).astype('Int64').astype(str)

df['Unit'] = np.where(df1[1].isin(['years','months', 'days']), ' days', ' ' + df1[1])

df['Time'] += df.pop('Unit')  
print (df)
     Name                      details       Time
0    prem  6 months probation included   186 days
1  shaves            3 years suspended  1095 days
2  geroge           48 hours work time   48 hours
3  julvie       4 years terms included  1460 days
4     tiz                 80 days work    80 days
5    lamp                 44 days work    44 days    

편집 : 가능한 여러 단위를 사용할 수 있습니다.

#specified dictionary for extract to days
d = {'months': 31, 'years':365, 'days':1}

#extract anf multiple by dictionary
out = {k: df['details'].str.extract(rf'(\d+)\s+{k}', expand=False).astype(float).mul(d[k])
          for k, v in d.items()}
#join together, sum and convert to days with replace 0 days 
days = pd.concat(out, axis=1).sum(axis=1).astype(int).astype('str').add(' days').replace('0 days','')

#extract hours
hours = df['details'].str.extract(r'(\d+\s+hours)', expand=False).radd(' ').fillna('')

#join together
df['Time'] = days + hours
print (df)
     Name                                      details               Time
0    john  2 years 1 months 10 days 15 hours work time  771 days 15 hours
1    prem                  6 months probation included           186 days
2  shaves                  3 years 6 months  suspended          1281 days
3  geroge                           48 hours work time           48 hours
4  julvie               4 years 20 days terms included          1480 days
5     tiz                                 80 days work            80 days
6    lamp                                 44 days work            44 days
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬에서 일을 년과 월로 어떻게 변환합니까?

분류에서Dev

파일 이름에서 년-월-일을 요일로 변환

분류에서Dev

SQL Server에서 년 월 일을 날짜로 변환

분류에서Dev

Spark Dataframe API에서 생년월일을 나이로 변환

분류에서Dev

2017 년 7 월 20 일과 같은 날짜 문자열을 epoch로 변환하고 Linux에서 비교

분류에서Dev

년, 월, 일을 datetime으로 변환

분류에서Dev

날짜 형식을 2013 년 10 월 4 일에서 2013 년 10 월 4 일로 변환하는 방법

분류에서Dev

Javascript Date ()는 2012 년 2 월 29 일을 2012 년 3 월 1 일로 변환합니다.

분류에서Dev

사용자 생년월일 HTML 입력을 PHP에서 나이로 변환

분류에서Dev

판다에서 중년 값을 월로 확장

분류에서Dev

Pandas-날짜를 datetime으로 변환하고, 일-월-년을 년-월-일로 변환하면 날짜 구문 분석이 실패합니다.

분류에서Dev

2001 년 1 월 1 일 00:00 이후 경과 된 시간 (초)을 bash에서 사람이 읽을 수있는 날짜로 어떻게 변환합니까?

분류에서Dev

날짜 형식을 "2016 년 11 월 3 일"에서 2016 년 11 월 3 일로 변경하는 방법

분류에서Dev

DateTime 형식을 2016 년 5 월 3 일 화요일로 변환

분류에서Dev

세 개의 열 (년, 월, 일)을 단일 날짜로 변환 Oracle

분류에서Dev

R에서 기간을 (년 및 월)에서 (월)로 변경

분류에서Dev

Double (1899 년 12 월 30 일 이후의 일수)을 Swift에서 Date로 변환 하시겠습니까?

분류에서Dev

SQL 변환 문자열 3M을 3 개월로, 1 년에서 1 년으로

분류에서Dev

파일 이름에서 날짜, 월, 년을 가져 와서 날짜 형식으로 변환하십시오.

분류에서Dev

파일 이름에서 날짜, 월, 년을 가져 와서 날짜 형식으로 변환하십시오.

분류에서Dev

1998 년 11 월 2 일을 110298로 변환

분류에서Dev

날짜 형식을 2019 년 12 월 12 일로 2019 년 12 월 12 일로 변환하는 방법

분류에서Dev

자바 스크립트를 사용하여 월-일-년을 일-월-년으로 변환

분류에서Dev

날짜 형식 2014 년 5 월 29 일 오전 12:00:00을 2014 년 5 월 29 일로 변환

분류에서Dev

Excel 날짜 유형 변환 : 2015 년 7 월 22 일을 2015 년 7 월 22 일로

분류에서Dev

Joda-Time은 일을 월과 일로 변환

분류에서Dev

다음 "11/30/2014"형식을 2014 년 11 월로 변환하는 변환 기능

분류에서Dev

'2016 년 6 월 10 일 금요일 14:30:38 -0500'에서 DATETIME으로 변환

분류에서Dev

등록 과정에서 생년월일로 인해 Apple에서 내 앱을 거부했습니다.

Related 관련 기사

  1. 1

    파이썬에서 일을 년과 월로 어떻게 변환합니까?

  2. 2

    파일 이름에서 년-월-일을 요일로 변환

  3. 3

    SQL Server에서 년 월 일을 날짜로 변환

  4. 4

    Spark Dataframe API에서 생년월일을 나이로 변환

  5. 5

    2017 년 7 월 20 일과 같은 날짜 문자열을 epoch로 변환하고 Linux에서 비교

  6. 6

    년, 월, 일을 datetime으로 변환

  7. 7

    날짜 형식을 2013 년 10 월 4 일에서 2013 년 10 월 4 일로 변환하는 방법

  8. 8

    Javascript Date ()는 2012 년 2 월 29 일을 2012 년 3 월 1 일로 변환합니다.

  9. 9

    사용자 생년월일 HTML 입력을 PHP에서 나이로 변환

  10. 10

    판다에서 중년 값을 월로 확장

  11. 11

    Pandas-날짜를 datetime으로 변환하고, 일-월-년을 년-월-일로 변환하면 날짜 구문 분석이 실패합니다.

  12. 12

    2001 년 1 월 1 일 00:00 이후 경과 된 시간 (초)을 bash에서 사람이 읽을 수있는 날짜로 어떻게 변환합니까?

  13. 13

    날짜 형식을 "2016 년 11 월 3 일"에서 2016 년 11 월 3 일로 변경하는 방법

  14. 14

    DateTime 형식을 2016 년 5 월 3 일 화요일로 변환

  15. 15

    세 개의 열 (년, 월, 일)을 단일 날짜로 변환 Oracle

  16. 16

    R에서 기간을 (년 및 월)에서 (월)로 변경

  17. 17

    Double (1899 년 12 월 30 일 이후의 일수)을 Swift에서 Date로 변환 하시겠습니까?

  18. 18

    SQL 변환 문자열 3M을 3 개월로, 1 년에서 1 년으로

  19. 19

    파일 이름에서 날짜, 월, 년을 가져 와서 날짜 형식으로 변환하십시오.

  20. 20

    파일 이름에서 날짜, 월, 년을 가져 와서 날짜 형식으로 변환하십시오.

  21. 21

    1998 년 11 월 2 일을 110298로 변환

  22. 22

    날짜 형식을 2019 년 12 월 12 일로 2019 년 12 월 12 일로 변환하는 방법

  23. 23

    자바 스크립트를 사용하여 월-일-년을 일-월-년으로 변환

  24. 24

    날짜 형식 2014 년 5 월 29 일 오전 12:00:00을 2014 년 5 월 29 일로 변환

  25. 25

    Excel 날짜 유형 변환 : 2015 년 7 월 22 일을 2015 년 7 월 22 일로

  26. 26

    Joda-Time은 일을 월과 일로 변환

  27. 27

    다음 "11/30/2014"형식을 2014 년 11 월로 변환하는 변환 기능

  28. 28

    '2016 년 6 월 10 일 금요일 14:30:38 -0500'에서 DATETIME으로 변환

  29. 29

    등록 과정에서 생년월일로 인해 Apple에서 내 앱을 거부했습니다.

뜨겁다태그

보관