我使用. size()
在一个Groupby结果上,以便计算每个组中有多少项。
我希望在不手动编辑列名数组的情况下将结果保存到新列名,如何实现?
这就是我尝试过的:
grpd = df.groupby(['A','B'])
grpd['size'] = grpd.size()
grpd
我得到的错误是:
TypeError:“DataFrameGroupBy”对象不支持项分配(在第二行)
df.groupby(…)
的结果不是数据帧。要恢复数据帧,必须对每个组应用一个函数,转换组中的每个元素,或过滤组。
似乎您需要一个包含(1)df
中所有原始数据和(2)每个组中有多少数据的DataFrame。这些东西有不同的长度,所以如果它们需要进入同一个数据帧,您需要冗余地列出大小,即每个组中的每一行。
df['size'] = df.groupby(['A','B']).transform(np.size)
(旁白:如果您可以显示简洁的示例输入和预期结果,这将是很有帮助的。)
您需要变换
大小
-len
的df
与之前相同:
通知:
这里需要在groupby
之后添加一列,否则会出现错误。因为GroupBy.size
countNaN
s,所以所使用的列并不重要。所有列的工作方式相同。
import pandas as pd
df = pd.DataFrame({'A': ['x', 'x', 'x','y','y']
, 'B': ['a', 'c', 'c','b','b']})
print (df)
A B
0 x a
1 x c
2 x c
3 y b
4 y b
df['size'] = df.groupby(['A', 'B'])['A'].transform('size')
print (df)
A B size
0 x a 1
1 x c 2
2 x c 2
3 y b 2
4 y b 2
如果需要在聚合df
-len
中设置列名,则df
显然与以前不同:
import pandas as pd
df = pd.DataFrame({'A': ['x', 'x', 'x','y','y']
, 'B': ['a', 'c', 'c','b','b']})
print (df)
A B
0 x a
1 x c
2 x c
3 y b
4 y b
df = df.groupby(['A', 'B']).size().reset_index(name='Size')
print (df)
A B Size
0 x a 1
1 x c 2
2 y b 2
DataFrameGroupBy对象的.size()
内置方法实际上返回一个具有组大小的Series对象,而不是DataFrame。如果需要一个列为组大小、按组编制索引、具有自定义名称的数据帧,可以使用.to_frame()
方法并使用所需的列名作为参数。
grpd = df.groupby(['A','B']).size().to_frame('size')
如果您希望组再次成为列,您可以在末尾添加一个.reset_index()
。
问题内容: 我在groupby结果上使用,以便计算每个组中有多少个项目。 我希望将结果保存到新的列名中,而无需手动编辑列名数组,怎么办? 这是我尝试过的: 和我得到的错误: TypeError:“ DataFrameGroupBy”对象不支持项目分配(在第二行) 问题答案: 的结果不是DataFrame。要取回DataFrame,必须对每个组应用一个函数,变换组中的每个元素,或过滤组。 似乎您想要
问题内容: 对于我的应用程序,我试图使用java.security.Signature类对一些字节内容进行签名。我遇到的问题是签名永远不会以固定的长度生成。例如,有时会以135、136或137个字节的长度生成它。有没有一种方法可以指定长度或在末尾添加一些填充?任何其他想法或意见,表示赞赏。 问题答案: 对于ECDSA, Java加密使用由X9.62,SEC1和rfc 3279 sec 2.2.3
问题内容: 我正在处理SQL Reporting Services报表(在VS.Net 2005中),该报表在矩阵中显示不同数据的数量。这些列对特定集合中的客户数量进行计数。因此,我有几个类似的列:“ 1个雇主”,“ 2-9个雇主”,“ 10-19个雇主”等等。 我的问题是SQL Reporting Services按字母顺序对矩阵中的列进行排序。因此,我最终在“ 1个雇主”列之后但在“ 2-9”
我试图在ejb-jar.xml中配置EJB2.1MDB。我的问题是没有明确的方法来指定MDB要侦听的目标(队列名)。我穷尽了网络,没有找到任何有用的信息。
像这样: 我该怎么办?
我有一个数组列表,它有3个字段(id、description、typeid),我将该数组列表绑定到ASP DropDownList。在绑定期间,我将description字段设置为DataTextField,并将另一个字段“Id”设置为DataValueField。 代码: 当用户从DropDownList中选择值时,我需要typeid值也需要设置为variable。 有人能告诉我,当我选择特定的