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