2017-04-04 40 views

回答

4
In [42]: df['Date'] = pd.to_datetime(df.assign(Day=1).loc[:, ['Year','Month','Day']]) 

In [43]: df 
Out[43]: 
    Column1 Month Quantity Year  Date 
0  48  4  12.0 2006 2006-04-01 
1  49  5  13.0 2006 2006-05-01 
2  50  6  46.0 2006 2006-06-01 
3  51  7  11.0 2006 2006-07-01 
4  52  8  18.0 2006 2006-08-01 
5  53  9  16.0 2006 2006-09-01 
6  54  10  28.0 2006 2006-10-01 
7  83  1  6.0 2006 2006-01-01 

或者much nicer solution from @piRSquared

In [55]: df['Date'] = pd.to_datetime(df[['Year', 'Month']].assign(Day=1)) 

In [56]: df 
Out[56]: 
    Column1 Month Quantity Year  Date 
0  48  4  12.0 2006 2006-04-01 
1  49  5  13.0 2006 2006-05-01 
2  50  6  46.0 2006 2006-06-01 
3  51  7  11.0 2006 2006-07-01 
4  52  8  18.0 2006 2006-08-01 
5  53  9  16.0 2006 2006-09-01 
6  54  10  28.0 2006 2006-10-01 
7  83  1  6.0 2006 2006-01-01 
+0

超级巧妙地利用'assign' ...爱它:-) – piRSquared

+0

@piRSquared,谢谢:) – MaxU

+1

我d将它缩短为'pd.to_datetime(df [['Year','Month']]。assign(Day = 1))' – piRSquared

4
df['Date'] = pd.to_datetime(df.Year.astype(str) + '-' + df.Month.astype(str)) 
print(df) 

    Column1 Month Quantity Year  Date 
0  48  4  12.0 2006 2006-04-01 
1  49  5  13.0 2006 2006-05-01 
2  50  6  46.0 2006 2006-06-01 
3  51  7  11.0 2006 2006-07-01 
4  52  8  18.0 2006 2006-08-01 
5  53  9  16.0 2006 2006-09-01 
6  54  10  28.0 2006 2006-10-01 
7  83  1  6.0 2006 2006-01-01