2017-10-21 3 views
0

J'ai la trame de données datetime suivante:comment obtenir le numéro de mois de plusieurs années dans datetime dataframe?

df = pd.DataFrame({'year': [2015, 2015 ,2016,2014], 'month': [2,11, 3,9], 'day': [4,21, 5,10]}) 

    df = pd.to_datetime(df) 

Je veux obtenir le 'month_number'. Mon résultat souhaité correspondant au nombre de mois séquentielle à travers les multiples années serait:

+1

comment le numéro de mois peut-il être 15? –

+0

@FlashThunder pas le numéro de mois, le nombre de mois – chrisz

Répondre

0

(df.année - min (df.année)) * 12 + df.month

0

Utilisez

In [5078]: df.month + 12*(df.year - df.year.iloc[0]) 
Out[5078]: 
0  2 
1 11 
2 15 
dtype: int64 

Identique

In [5079]: df.month.add(df.year.sub(df.year.iloc[0]).mul(12)) 
Out[5079]: 
0  2 
1 11 
2 15 
dtype: int64 
+0

si j'ai l'image: 'df = pd.DataFrame ({'year': [2015, 2015, 2016,2014], 'month': [2,11, 3 , 9], 'jour': [4,21, 5,10]}) df = pd.to_datetime (df) ', comment puis-je obtenir cette sortie: 6,15,19,1 – user121