Python Groupby计数为一列,Groupby计数为表中另一列的唯一值的数目
我有一个数据框,如下所示。它只有两列扇区,并由 我的数据帧: 从上面的数据框中,我想准备如下所示的数据框 预期产出: 我尝试了以下代码Python Groupby计数为一列,Groupby计数为表中另一列的唯一值的数目,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个数据框,如下所示。它只有两列扇区,并由 我的数据帧: 从上面的数据框中,我想准备如下所示的数据框 预期产出: 我尝试了以下代码 c = df.groupby(['Sector']).size().reset_index(name='Total_Number_of_Times_Raised').sort_values(['Total_Number_of_Times_Raised'], ascending =False) 您可以使用: 输出:
c = df.groupby(['Sector']).size().reset_index(name='Total_Number_of_Times_Raised').sort_values(['Total_Number_of_Times_Raised'],
ascending =False)
您可以使用:
输出:
Sector Total_Number_of_Times_Raised Number_unique_Raised_By Unique_Raised_By
0 A 4 2 [Xavi, Messi]
1 B 3 2 [Ramos, Ronaldo]
2 C 5 3 [Beckham, Oven, Ronaldo]
注:
您可以在末尾使用或不重置索引您可以使用:
输出:
Sector Total_Number_of_Times_Raised Number_unique_Raised_By Unique_Raised_By
0 A 4 2 [Xavi, Messi]
1 B 3 2 [Ramos, Ronaldo]
2 C 5 3 [Beckham, Oven, Ronaldo]
注:
您可以在末尾使用或不重置索引一个选项是指定不同的aggfuncs
df.pivot_table(index=df.Sector, values='Raised_By', aggfunc=['count', 'nunique', set])
一个选项是指定不同的aggfuncs
df.pivot_table(index=df.Sector, values='Raised_By', aggfunc=['count', 'nunique', set])
至少在版本0.25中,agg与另一个版本一样与字典一起使用
回答,结果是一个警告:未来警告:在一个系列中使用dict
for aggregation已弃用,将在将来的版本中删除
更现代的解决方案是使用命名聚合:
至少在版本0.25中,agg与另一个版本一样与字典一起使用
回答,结果是一个警告:未来警告:在一个系列中使用dict
for aggregation已弃用,将在将来的版本中删除
更现代的解决方案是使用命名聚合:
df.pivot_table(index=df.Sector, values='Raised_By', aggfunc=['count', 'nunique', set])
count nunique set
Raised_By Raised_By Raised_By
Sector
A 4 2 {Messi, Xavi}
B 3 2 {Ramos, Ronaldo}
C 5 3 {Oven, Ronaldo, Beckham}
df.groupby('Sector').Raised_By.agg(
Total_Number_of_Times_Raised='count',
Number_unique_Raised_By='nunique',
Unique_Raised_By='unique').reset_index()