Python 如何使用pandas groupby()显示每列2个内容的值?

Python 如何使用pandas groupby()显示每列2个内容的值?,python,pandas,data-science,Python,Pandas,Data Science,因此,我一直在尝试使用pandas创建一个数据框架,用于报告在需要大学学位(“大学工作”)和不需要大学学位(“非大学工作”)的工作中工作的毕业生人数。 注意:我正在处理的数据帧的名称是最近的大学毕业生 我尝试了以下代码: df1 = recent_grads.groupby(['major_category']).college_jobs.non_college_jobs.sum() 或 或 他们都没有工作!我该怎么办?有人能给我一个简单的解释吗?我一直试图通读熊猫的纪录片,但没有找到想要的

因此,我一直在尝试使用pandas创建一个数据框架,用于报告在需要大学学位(“大学工作”)和不需要大学学位(“非大学工作”)的工作中工作的毕业生人数。 注意:我正在处理的数据帧的名称是最近的大学毕业生

我尝试了以下代码:

df1 = recent_grads.groupby(['major_category']).college_jobs.non_college_jobs.sum() 

他们都没有工作!我该怎么办?有人能给我一个简单的解释吗?我一直试图通读熊猫的纪录片,但没有找到想要的解释

以下是数据帧的头部:

   rank  major_code                                      major major_category  \
0     1        2419                      PETROLEUM ENGINEERING    Engineering   
1     2        2416             MINING AND MINERAL ENGINEERING    Engineering   
2     3        2415                  METALLURGICAL ENGINEERING    Engineering   
3     4        2417  NAVAL ARCHITECTURE AND MARINE ENGINEERING    Engineering   
4     5        2405                       CHEMICAL ENGINEERING    Engineering   

   total  sample_size    men  women  sharewomen  employed      ...        \
0   2339           36   2057    282    0.120564      1976      ...         
1    756            7    679     77    0.101852       640      ...         
2    856            3    725    131    0.153037       648      ...         
3   1258           16   1123    135    0.107313       758      ...         
4  32260          289  21239  11021    0.341631     25694      ...         

   part_time  full_time_year_round  unemployed  unemployment_rate  median  \
0        270                  1207          37           0.018381  110000   
1        170                   388          85           0.117241   75000   
2        133                   340          16           0.024096   73000   
3        150                   692          40           0.050125   70000   
4       5180                 16697        1672           0.061098   65000   

   p25th   p75th college_jobs  non_college_jobs  low_wage_jobs  
0  95000  125000         1534               364            193  
1  55000   90000          350               257             50  
2  50000  105000          456               176              0  
3  43000   80000          529               102              0  
4  50000   75000        18314              4440            972  

[5 rows x 21 columns]

您可以按感兴趣的列筛选初始数据帧,然后执行groupby和求和,如下所示:

recent_grads[['major_category', 'college_jobs', 'non_college_jobs']].groupby('major_category').sum()

相反,如果您不执行初始列筛选,然后对
最近的\u grads.groupby('major\u category')执行
.sum()
它将应用于所有可能的数字列。

您能否至少共享此数据框的标题?您能否提供一些示例数据框和所需的输出?@Anwarvic我已编辑并显示了问题中的数据框标题。非常感谢您的回答,我终于找到了解决方案。你能详细解释一下它为什么工作吗?@Ninawang我可以试试——当你执行DataFrame.groupby()时,你实际上是在要求Pandas对相关数据执行“拆分-应用-合并”。在这种情况下,我们希望将数据框拆分为每个“主要”类别的组,对“大学就业”和“非大学就业”列中的所有数据应用求和函数,并将数据合并回可读结构。有详细的描述。这和最近的大学毕业生是一样的吗。groupby(['major\u category'])['college\u jobs','non\u college\u jobs'])。sum()?是的,同样的事情!因为如果我没记错的话,在你调用某种形式的聚合之前,比如
.sum()
,实际上什么都不会执行。但可能需要在文档中进行检查。
   rank  major_code                                      major major_category  \
0     1        2419                      PETROLEUM ENGINEERING    Engineering   
1     2        2416             MINING AND MINERAL ENGINEERING    Engineering   
2     3        2415                  METALLURGICAL ENGINEERING    Engineering   
3     4        2417  NAVAL ARCHITECTURE AND MARINE ENGINEERING    Engineering   
4     5        2405                       CHEMICAL ENGINEERING    Engineering   

   total  sample_size    men  women  sharewomen  employed      ...        \
0   2339           36   2057    282    0.120564      1976      ...         
1    756            7    679     77    0.101852       640      ...         
2    856            3    725    131    0.153037       648      ...         
3   1258           16   1123    135    0.107313       758      ...         
4  32260          289  21239  11021    0.341631     25694      ...         

   part_time  full_time_year_round  unemployed  unemployment_rate  median  \
0        270                  1207          37           0.018381  110000   
1        170                   388          85           0.117241   75000   
2        133                   340          16           0.024096   73000   
3        150                   692          40           0.050125   70000   
4       5180                 16697        1672           0.061098   65000   

   p25th   p75th college_jobs  non_college_jobs  low_wage_jobs  
0  95000  125000         1534               364            193  
1  55000   90000          350               257             50  
2  50000  105000          456               176              0  
3  43000   80000          529               102              0  
4  50000   75000        18314              4440            972  

[5 rows x 21 columns]
recent_grads[['major_category', 'college_jobs', 'non_college_jobs']].groupby('major_category').sum()