【发布时间】:2016-05-06 11:44:01
【问题描述】:
我正在使用 impyla 从 Impala 中提取数据,并使用 as_pandas 将它们转换为数据帧。我正在使用Pandas 0.18.0,Python 2.7.9
我正在尝试计算数据框中所有列的总和,并尝试选择大于阈值的列。
self.data = self.data.loc[:,self.data.sum(axis=0) > 15]
但是当我运行它时,我收到如下错误:
pandas.core.indexing.IndexingError: Unalignable boolean Series key 提供
然后我尝试如下。
print 'length : ',len(self.data.sum(axis = 0)),' all columns : ',len(self.data.columns)
然后我得到不同的长度,即
长度:78 所有列:83
我的警告低于警告
C:\Python27\lib\decimal.py:1150: RuntimeWarning: tp_compare 没有 异常返回 -1 或 -2
为了实现我的目标,我尝试了另一种方式
for column in self.data.columns:
sum = self.data[column].sum()
if( sum < 15 ):
self.data = self.data.drop(column,1)
现在我遇到了其他错误,如下所示:
TypeError:+ 的不支持的操作数类型:“十进制”和“浮点” C:\Python27\lib\decimal.py:1150: RuntimeWarning: tp_compare 没有为异常返回 -1 或 -2
然后我尝试获取每一列的数据类型,如下所示。
print 'dtypes : ', self.data.dtypes
结果所有列都是这些 int64 、 object 和 float 64 之一 然后我想改变对象中列的数据类型,如下所示
self.data.convert_objects(convert_numeric=True)
我还是遇到同样的错误,请帮我解决这个问题。
注意:在所有列中,我都没有字符串,即字符和缺失值或为空。我已使用 self.data.to_csv 进行了检查
由于我是 pandas 和 python 的新手,如果这是一个愚蠢的问题,请不要介意。我只是想学习
【问题讨论】:
标签: python-2.7 pandas impyla