[英]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
为了避免将来出现混乱我的解决方案和答案将是只改变我的数据框列的名称values
来categories
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.