0
我從數據庫中裝載的數據,並創建一個數據幀的數據幀透視型執行數據分析,在熊貓
db_resultset = self.result.fetchall()
df = DataFrame(db_resultset)
df.columns = self.result.keys()
pivoted_data = df.pivot(index='id', columns='item')
data =
id item val
1 A 10
2 A 25
1 B 12
1 C 15
2 C 2
1 D 7
2 D 9
...
pivoted_data =
A B C D
1 10 12 15 7
2 25 NaN 2 9
...
而且我想計算像成對相關,pivoted_data.corr()
,這會導致此類錯誤的事情如:
File "/.../pandas/core/frame.py", line 4469, in corr
numeric_df = self._get_numeric_data()
File "/.../pandas/core/frame.py", line 4989, in _get_numeric_data
return self.ix[:, []]
File "/.../pandas/core/indexing.py", line 34, in __getitem__
return self._getitem_tuple(key)
File "/.../pandas/core/indexing.py", line 224, in _getitem_tuple
retval = retval.ix._getitem_axis(key, axis=i)
File "/.../pandas/core/indexing.py", line 342, in _getitem_axis
return self._getitem_iterable(key, axis=axis)
File "/.../pandas/core/indexing.py", line 408, in _getitem_iterable
not isinstance(keyarr[0], tuple)):
什麼是對一組數據執行分析的最佳方法?我曾想過將pivoted_data
轉換回DataFrame,但這似乎不是一個理想的解決方案。
** 編輯:
迴應傑夫的評論:
pivoted_data.get_dtype_counts() =
object 319
pivoted_data是一個DataFrame,但您的數據可能是對象類型,後期pivoted_data.get_dtype_counts() – Jeff 2013-04-04 17:15:53
@Jeff,感謝您的評論。你能否擴展爲什麼'object'類型導致問題,以及我如何解決它? – pjama 2013-04-04 17:20:56
嘗試pivoted_data.astype('float64'),然後做你所需要的。 (你也可以指定dtype ='float64')在數據幀的結構上(注意如果你有非浮點類型,那麼這可能會中斷,你將不得不逐列) – Jeff 2013-04-04 17:21:57