繁体   English   中英

关于DataFrame 1维错误的Pandas交叉表

[英]Pandas crosstab on DataFrame 1-dimension error

我正在尝试使用此多索引DataFrame计算组频率:

In [1]: frame
Out[1]:
                    position      values
idmajor  idminor
  22        2           6           A
   4        1           7           B
  11        1           7           C
  23        1           7           B
   1        1           8           C
            9           8           C
   4        1           8           C
            1           8           C

这是我的代码和错误:

In [2]: pd.crosstab(frame.position, frame.values)
Out[2]: Exception: Data must be 1-dimensional

这是我想输出的内容:

Out[2]:
   categories    A       B       C
   values
   6             1       0       0
   7             0       2       1
   8             0       0       4

我正在阅读Python进行数据分析 ,并且刚开始使用pandas库。 我正在努力寻找答案或例子,以使我对这个问题有更深入的了解。 任何意见是极大的赞赏!

编辑:由于DataFrame的多索引,我被异常误导了。 此框架的多索引性质与异常无关。

在文档中, pd.DataFrame.values是通过Python名称空间中的pandas保留的,因此我引用的是数据列的函数,而不是我以前认为的列标签!

点符号pd.crosstab(frame.position, frame.values)返回错误Exception: Data must be 1-dimensional而字典符号pd.crosstab(frame['position'], frame['values'])返回成功!

In [2]: pd.crosstab(frame['position'], frame['values'])
Out[2]:
categories    A       B       C
values
6             1       0       0
7             0       2       1
8             0       0       4

为了避免将来出现混乱我的解决方案和答案将是只改变我的数据框列的名称valuescategories

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM