如何为 size() 列指定名称?
- 2025-02-27 09:07:00
- admin 原创
- 21
问题描述:
我正在使用.size()
groupby 结果来计算每个组中有多少个项目。
我希望将结果保存到新的列名中,而无需手动编辑列名数组,该怎么做?
这是我尝试过的:
grpd = df.groupby(['A','B'])
grpd['size'] = grpd.size()
grpd
我得到的错误是:
TypeError:'DataFrameGroupBy'对象不支持项目分配(在第二行)
解决方案 1:
DataFrameGroupBy 对象的内置方法.size()
实际上返回的是具有组大小的 Series 对象,而不是 DataFrame。如果您想要一个 DataFrame,其列是组大小,按组索引,具有自定义名称,则可以使用该.to_frame()
方法并使用所需的列名作为其参数。
grpd = df.groupby(['A','B']).size().to_frame('size')
如果您希望这些组再次成为列,您可以.reset_index()
在末尾添加。
解决方案 2:
您需要-与以前相同:transform
size
`len`df
注意:
这里需要在后面添加一列groupby
,否则会出现错误。因为GroupBy.size
countNaN
也是,所以使用哪一列并不重要。所有列的工作方式都相同。
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
解决方案 3:
结果df.groupby(...)
不是 DataFrame。要返回 DataFrame,您必须对每个组应用函数、转换组中的每个元素或筛选组。
看起来您想要一个 DataFrame,其中包含 (1) 所有原始数据df
和 (2) 每个组中数据的数量。这些东西的长度不同,因此如果它们需要放入同一个 DataFrame,您需要重复列出大小,即每个组中的每一行。
df['size'] = df.groupby(['A','B']).transform(np.size)
(附言:如果您能展示简洁的样本输入和预期结果,将会很有帮助。)
解决方案 4:
您可以设置as_index
参数来groupby
获取False
DataFrame 而不是 Series:
df = pd.DataFrame({'A': ['a', 'a', 'b', 'b'], 'B': [1, 2, 2, 2]})
df.groupby(['A', 'B'], as_index=False).size()
输出:
A B size
0 a 1 1
1 a 2 1
2 b 2 2
解决方案 5:
假设 n 是数据框的名称,cst 是重复项的数量。下面的代码给出了下一列中的计数
cstn=Counter(n.cst)
cstlist = pd.DataFrame.from_dict(cstn, orient='index').reset_index()
cstlist.columns=['name','cnt']
n['cnt']=n['cst'].map(cstlist.loc[:, ['name','cnt']].set_index('name').iloc[:,0].to_dict())
希望这会有用
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)