Как простым способом извлечь тип издания, месяц и год из данных набора цен этой книги? - PullRequest
1 голос
/ 24 января 2020
import pandas as pd

df=pd.DataFrame({'Edition_TypeDate': 
                [''2016'','5 Oct 2017','2017','2 Aug 2009','Illustrated, Import','Import, 22 Feb 2018','Import, 14 Dec 2017','Import, 1 Mar 2018','Abridged, Audiobook, Box set',
'International Edition, 26 Apr 2012','Import, 2018','Box set, 15 Jun 2014','Unabridged, 6 Jul 2007']})

enter image description here

У меня есть один из столбцов в наборе данных моей книги. Теперь Из этого столбца я хочу три новых столбца.

1.Edition_Type -> который включает в себя импорт, иллюстрированный или ноль, если ничего не упомянуто

2.Edition_Month --->, который включает август , Октябрь или ноль, если ничего не упомянуто

3.Edition _Year --->, включая 2016,2017,2018, или ноль, если ничего не указано

Как это сделать? Помогите мне определить функцию, которую я могу применить к этому.

1 Ответ

3 голосов
/ 24 января 2020

Вы можете использовать Series.str.extract с ключевыми словами с | для регулярных выражений or, для лет (\d{4}$) означает получение 4-значных чисел с конца строки:

df['Edition_Type'] = df['Edition_TypeDate'].str.extract(r'(Import|Illustrated)')
df['Edition_Month'] = df['Edition_TypeDate'].str.extract(r'(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)')
df['Edition _Year'] = df['Edition_TypeDate'].str.extract(r'(\d{4}$)')
print (df)
                      Edition_TypeDate Edition_Type Edition_Month  \
0                                 2016          NaN           NaN   
1                           5 Oct 2017          NaN           Oct   
2                                 2017          NaN           NaN   
3                           2 Aug 2009          NaN           Aug   
4                  Illustrated, Import  Illustrated           NaN   
5                  Import, 22 Feb 2018       Import           Feb   
6                  Import, 14 Dec 2017       Import           Dec   
7                   Import, 1 Mar 2018       Import           Mar   
8         Abridged, Audiobook, Box set          NaN           NaN   
9   International Edition, 26 Apr 2012          NaN           Apr   
10                        Import, 2018       Import           NaN   
11                Box set, 15 Jun 2014          NaN           Jun   
12              Unabridged, 6 Jul 2007          NaN           Jul   

   Edition _Year  
0           2016  
1           2017  
2           2017  
3           2009  
4            NaN  
5           2018  
6           2017  
7           2018  
8            NaN  
9           2012  
10          2018  
11          2014  
...