2017-04-04 9 views
3
Column1 Month Quantity Year 
48   4   12.00 2006 
49   5   13.00 2006 
50   6   46.00 2006 
51   7   11.00 2006 
52   8   18.00 2006 
53   9   16.00 2006 
54  10   28.00 2006 
83   1   6.00 2006 

月の列と年の列をマージして意味のある時間データを取得する方法はありますか?Python Pandasの同じ列に月と年を入れる方法

答えて

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: `assign`の

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

スーパー巧妙な使用は...、 – 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 

関連する問題