首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫:缓冲区有错误的尺寸数

熊猫:缓冲区有错误的尺寸数
EN

Stack Overflow用户
提问于 2017-07-31 20:29:38
回答 1查看 5.5K关注 0票数 3

下面是我的代码(只是模拟数字):

代码语言:javascript
运行
复制
import pandas as pd 
d = {'x' : [1,4,6,9],
     'y' : [1,4,6,8]}
df = pd.DataFrame(d)
ct = pd.concat([df.x,
                pd.cut(df.y, bins=2)], axis=1)
gp = ct.groupby('x').y.value_counts().unstack().fillna(0)
print(gp)
print(gp[gp.columns[0]])
gp[gp.columns[0]] = gp[gp.columns[0]]/10

print(gp)给出:

代码语言:javascript
运行
复制
y  (0.993, 4.5]  (4.5, 8.0]
x                          
1           1.0         0.0
4           1.0         0.0
6           0.0         1.0
9           0.0         1.0

print(gp[gp.columns[0]])给出了以下内容:

代码语言:javascript
运行
复制
x
1    1.0
4    1.0
6    0.0
9    0.0
Name: (0.993, 4.5], dtype: float64

但以下几行:

代码语言:javascript
运行
复制
gp[gp.columns[0]] = gp[gp.columns[0]]/10

抛出此错误:

代码语言:javascript
运行
复制
ValueError: Buffer has wrong number of dimensions (expected 1, got 0)

是什么导致了这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 20:43:42

对我来说这好像是个虫子。即使下面的内容也会产生错误

代码语言:javascript
运行
复制
gp.loc[:, gp.columns[0]] /= 10

ValueError:缓冲区的维数错误(预期为1,got为0)

但是,如果向pd.cut提供标签,则可以解决问题。

代码语言:javascript
运行
复制
d = {'x' : [1,4,6,9],
     'y' : [1,4,6,8]}
df = pd.DataFrame(d)
ct = pd.concat([df.x,
                pd.cut(df.y, bins=2, labels=range(2))], axis=1)
gp = ct.groupby('x').y.value_counts().unstack(fill_value=0)

gp.loc[:, gp.columns[0]] /= 10

gp

y    0  1
x        
1  0.1  0
4  0.1  0
6  0.0  1
9  0.0  1
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45424753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档