- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为“bal”的数据框。它看起来像这样:
ano id unit period
business_id
9564 2012 302 sdasd anual
9564 2011 303 sdasd anual
2361 2013 304 sdasd anual
2361 2012 305 sdasd anual
...
我在上面运行以下代码:
bal=bal.merge(bal.pivot(columns='ano', values='id'),right_index=True,left_index=True)
我的意图是把它变成这样的东西:
ano id unit period 2006 2007 2008 2009 2010 \
business_id
72 2013 774 sdasd anual NaN NaN NaN NaN NaN
72 2012 775 sdasd anual NaN NaN NaN NaN NaN
74 2012 1120 sdasd anual NaN NaN NaN NaN NaN
119 2013 875 sdasd anual NaN NaN NaN NaN NaN
119 2012 876 sdasd anual NaN NaN NaN NaN NaN
...
当我编写该代码时,出现此错误:
ValueError: Index contains duplicate entries, cannot reshape
所以为了避免重复,我添加了一个 drop_duplicates 行:
bal=bal.drop_duplicates()
bal=bal.merge(bal.pivot(columns='ano', values='id'),right_index=True,left_index=True)
当我运行代码时,瞧,我遇到了同样的问题:
ValueError: Index contains duplicate entries, cannot reshape
我是做错了什么还是误解了什么?
编辑
bal
是我使用以下代码从 SQL 创建的数据框:
bal=pd.read_sql('select * from table;',connection).set_index('business_id')[['ano','id','unit','period']]
奇怪的是,如果我限制 SQL 查询,它工作正常:
bal=pd.read_sql('select * from table limit 1000;',connection).set_index('business_id')[['ano','id','unit','period']]
我认为问题可能与索引有很多重复项有关(如您在上面的示例中所见)。但是,如果我在这个有限的 bal 中 print(bal.head(4))
它看起来与您在上面看到的完全一样,索引重复。
最佳答案
更新 2:
qry = "select distinct business_id,ano,id,unit,period from table where period='anual'"
bal=pd.read_sql(qry, connection, index_col=['business_id'])
假设我们得到以下 DF(ano
列中仍然有重复值):
In [167]: bal
Out[167]:
ano id unit period
business_id
9564 2012 302 sdasd anual
9564 2012 299 sdasd anual
9564 2011 303 sdasd anual
2361 2013 304 sdasd anual
2361 2012 305 sdasd anual
我们可以这样做:
In [169]: bal.join(bal.pivot_table(index=bal.index, columns='ano',
values='id', aggfunc='first'))
Out[169]:
ano id unit period 2011 2012 2013
business_id
2361 2013 304 sdasd anual NaN 305.0 304.0
2361 2012 305 sdasd anual NaN 305.0 304.0
9564 2012 302 sdasd anual 303.0 302.0 NaN
9564 2012 299 sdasd anual 303.0 302.0 NaN
9564 2011 303 sdasd anual 303.0 302.0 NaN
更新:
考虑以下示例 DF:
In [161]: bal
Out[161]:
ano id unit period
business_id
9564 2012 302 sdasd anual
9564 2012 299 sdasd anual # i've intentionally added this row with duplicated `ano`
9564 2011 303 sdasd anual
2361 2013 304 sdasd anual
2361 2012 305 sdasd anual
重现你的错误:
In [162]: bal.pivot(columns='ano', values='id')
...
skipped
...
ValueError: Index contains duplicate entries, cannot reshape
旧答案:
这是你想要的吗?
In [144]: bal.join(bal.pivot(columns='ano', values='id'))
Out[144]:
ano id unit period 2011 2012 2013
business_id
2361 2013 304 sdasd anual NaN 305.0 304.0
2361 2012 305 sdasd anual NaN 305.0 304.0
9564 2012 302 sdasd anual 303.0 302.0 NaN
9564 2011 303 sdasd anual 303.0 302.0 NaN
关于Python/Pandas - ValueError : Index contains duplicate entries, 无法 reshape ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45825381/
如何检查字符串是否被 reshape ?示例:“aab”返回 0,因为“a”无法 reshape 为该字符串或任何其他更短的字符串。 另一个例子是“aabbaab”返回 1,因为“aabb”可以被 r
我无法清楚地理解theano的reshape。我有一个形状的图像矩阵: [batch_size, stack1_size, stack2_size, height, width] ,其中有 s
如何检查字符串是否被 reshape ?示例:“aab”返回 0,因为“a”无法 reshape 为该字符串或任何其他更短的字符串。 另一个例子是“aabbaab”返回 1,因为“aabb”可以被 r
这是原始数据 a=[[1,2,3,4,5,6], [7,8,9,10,11,12]] 我想把它转换成这样的格式: b=[[1,2,3,7,8,9], [4,5,6,10,11,12]] a
我目前正在学习 CS231 作业,我意识到一些令人困惑的事情。在计算梯度时,当我第一次 reshape x 然后得到转置时,我得到了正确的结果。 x_r=x.reshape(x.shape[0],-1
这个问题在这里已经有了答案: Reshaping multiple sets of measurement columns (wide format) into single columns (lon
我有一个包含超过 1500 列的宽格式数据集。由于许多变量都是重复的,我想将其 reshape 为长形式。然而,r 抛出一个错误: Error in guess(varying) : Failed
我有一个长格式的数据框狗,我正在尝试使用 reshape() 函数将其重新格式化为宽格式。目前看起来是这样的: dogid month year trainingtype home scho
这个问题在这里已经有了答案: how to reshape an N length vector to a 3x(N/3) matrix in numpy using reshape (1 个回答)
我对 ndarray.reshape 的结构有疑问.我读过 numpy.reshape()和 ndarray.reshape是 python 中用于 reshape 数组的等效命令。 据我所知,num
所以这是我的麻烦:我想将一个长格式的数据文件改成宽格式。但是,我没有唯一的“j”变量;长格式文件中的每条记录都有几个关键变量。 例如,我想这样做: | caseid | gender | age |
Whis 这个数据框, df df id parameter visit value sex 1 01 blood V1 1 f 2 01 saliva V
我有一个列表,其中包含几个不同形状的 numpy 数组。我想将这个数组列表 reshape 为一个 numpy 向量,然后更改向量中的每个元素,然后将其 reshape 回原始数组列表。 例如: 输入
我有一个形状为 (1800,144) 的数组 (a) 其中 a[0:900,:] 都是实数,后半部分数组 a[900:1800,:] 全部为零。我想把数组的后半部分水平地放在前半部分旁边,然后将它们推
我有一个如下所示的数组: array([[0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2
我正在创建一个 tf.Variable(),然后使用该变量创建一个简单的函数,然后我使用 tf.reshape() 展平原始变量,然后我在函数和展平变量之间使用了 tf.gradients()。为什么
我有一个名为 data 的数据框,我试图从中识别任何异常价格。 数据框头部看起来像: Date Last Price 0 29/12/2017 487.74 1 28/
我有一个 float vec 数组,我想对其进行 reshape vec.shape >>> (3,) len(vec[0]) # all 3 rows of vec have 150 columns
tl;dr 我可以在不使用 numpy.reshape 的情况下将 numpy 数组的 View 从 5x5x5x3x3x3 reshape 为 125x1x1x3x3x3 吗? 我想对一个体积(大小
set.seed(123)data <- data.frame(ID = 1:10, weight_hus = rnorm(10, 0, 1),
我是一名优秀的程序员,十分优秀!