2017-08-08 29 views
0

我有Date數據框和年份作爲值的數據框,我想顯示長度,但它顯示爲南。在Python 3.6中給出nan的數據框值長度

腳本:

dataAll['Date'].unique() 
Output: array([2012, 2013, 2014, 2015, 2016, 2011, 2007, 2008, 2009, 2010, 2002,2003, 2004, 2005, 2006, 2017, 2001, 2000], dtype=object) 

dataAll['Date'].str.len().unique() 
Output: array([ nan]) 

回答

1

所以...讓我們只說我嘗試重建的例子。

years= [2012, 2013, 2014, 2015, 2016, 2011, 2007, 2008, 2009, 2010, 2002, 2003, 2004, 2005, 2006, 2017, 2001, 2000] 
years = [str(x) for x in years] 

dataAll = pd.DataFrame({'Date':years}) 
dataAll['Date'].str.len().unique() 
Out[63]: array([4], dtype=int64) 

換句話說,代碼工作正常,但在你的dataAll.Date的數據不是字符串。現在

我會做同樣的,但具有不同的數據表示,這將失敗兩次:

years= [2012, 2013, 2014, 2015, 2016, 2011, 2007, 2008, 2009, 2010, 2002, 2003, 2004, 2005, 2006, 2017, 2001, 2000] 

dataAll = pd.DataFrame({'Date':years}) 
dataAll['Date'].str.len().unique() 
Out[68]: AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas 

years= [2012, 2013, 2014, 2015, 2016, 2011, 2007, 2008, 2009, 2010, 2002, 2003, 2004, 2005, 2006, 2017, 2001, 2000] 

dataAll = pd.DataFrame({'Date':years}, dtype=object) 
dataAll['Date'].str.len().unique() 
Out[73]: array([ nan]) 

而且修復:

dataAll.Date = dataAll.Date.astype(str) 

dataAll['Date'].str.len().unique() 
Out[75]: array([4], dtype=int64) 
+0

超級...它的工作....非常感謝。 –

相關問題