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