我想知道如何将我的binned数据帧转换为可以在sklearn的PCA中使用的binned numpy数组。
到目前为止我的代码(x是我原来的未绑定数据帧):
bins=(2,6,10,14,20,26,32,38,44,50,56,62,68,74,80,86,92,98)
binned_data = x.groupby(pd.cut(x.Weight, bins))
我想将binned_data转换为numpy数组。提前谢谢。
编辑:
当我尝试binned_data.values时,收到此错误:
AttributeError: Cannot access attribute 'values' of 'DataFrameGroupBy' objects, try using the 'apply' method
答案 0 :(得分:1)
您需要将某种聚合应用于GroupBy对象以返回DataFrame。完成后,您可以使用.values
来提取numpy arrary。
例如,如果您想要每个垃圾箱中数据的总和或计数,您可以这样做:
binned_data.sum().values
binned_data.size().values
编辑: 我的代码不完全正确,因为列(权重)和索引将具有相同的名称。可以通过重命名索引来修复它,如下所示:
binned_data = x.groupby(pd.cut(x.Weight, bins)).sum()
binned_data.index.name = 'Weight_Bin'
binned_data.reset_index().values