datetime將不會在熊貓系列(數據框的列)上運行。您可以使用to_datetime
或者您可以在apply
內使用datetime
。像下面這樣的東西應該工作:
In [9]: df
Out[9]:
year month
0 2007 1
1 2007 2
2 2007 3
3 2007 4
4 2008 1
5 2008 3
In [10]: pd.to_datetime(df['year'].astype(str) + '-'
+ df['month'].astype(str)
+ '-1')
Out[10]:
0 2007-01-01
1 2007-02-01
2 2007-03-01
3 2007-04-01
4 2008-01-01
5 2008-03-01
dtype: datetime64[ns]
或者使用應用:
In [11]: df.apply(lambda x: datetime(x['year'],x['month'],1),axis=1)
Out[11]:
0 2007-01-01
1 2007-02-01
2 2007-03-01
3 2007-04-01
4 2008-01-01
5 2008-03-01
dtype: datetime64[ns]
另一個編輯:您也可以完成大部分的日期解析與read_csv
,但那麼你就需要調整天你在閱讀之後(注意,我的數據是在一個名爲「數據」的字符串):
In [12]: df = pd.read_csv(StringIO(data),header=True,
parse_dates={'date':['year','month']})
In [13]: df['date'] = df['date'].values.astype('datetime64[M]')
In [14]: df
Out[14]:
date
0 2007-01-01
1 2007-02-01
2 2007-03-01
3 2007-04-01
4 2008-01-01
5 2008-03-01
我很確定這個文件是csv。以上數據只是格式的一個例子。然後我刪除pd.DataFrame行。但問題仍然存在...... –