在Pandas数据框上进行分组的最佳方法是什么,但要从该分组中排除一些列呢?例如我有以下数据框:
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 Wheat 5312 Ha 10 20 30
2 Afghanistan 25 Maize 5312 Ha 10 20 30
4 Angola 15 Wheat 7312 Ha 30 40 50
4 Angola 25 Maize 7312 Ha 30 40 50
我想对“国家”和“项目代码”列进行分组,并且仅计算Y1961,Y1962和Y1963列下的行总和。结果数据框应如下所示:
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 C3 5312 Ha 20 40 60
4 Angola 25 C4 7312 Ha 60 80 100
现在我正在这样做:
df.groupby('Country').sum()
但是,这也会将Item_Code列中的值相加。有什么方法可以指定要包括在sum()
操作中的列和要排除的列?
您可以选择分组依据的列:
In [11]: df.groupby(['Country', 'Item_Code'])[["Y1961", "Y1962", "Y1963"]].sum()
Out[11]:
Y1961 Y1962 Y1963
Country Item_Code
Afghanistan 15 10 20 30
25 10 20 30
Angola 15 30 40 50
25 30 40 50
请注意,传递的列表必须是列的子集,否则您将看到KeyError。
我有以下数据框: 我需要按年和月分组数据。即:按2013年1月、2013年2月、2013年3月等分组...我将使用新分组的数据来创建一个显示每年/每月abc vs xyz的图表。 我尝试过groupby和sum的各种组合,但似乎没有任何效果。 谢谢你的帮助。
问题内容: 我正在尝试创建一个(sqlite)查询,该查询将执行GROUP BY,但不会将任何值’unknown’分组。例如,我有表: 使用正确的查询并带有“ GROUP BY名称,parent_id,school_id”,我需要返回以下行: 任何帮助将不胜感激。谢谢! 问题答案: 您很难用一个语句来完成此操作,但是可以使用两个语句的结果 所有的名单 ,但 添加()全部列表 SQL语句 请注意,我
我正在使用此数据框: 我想通过名称和水果将其聚合,得到每个名称的水果总数。 我试着按名字和水果分组,但如何得到水果的总数呢。
问题内容: 我有一张标签表,想从列表中获得计数最高的标签。 样本数据如下所示 使用 让我得到正在寻找的完美数据。但是,我想对它进行组织,以使最高的标签数排在首位,并限制它仅向我发送前20个左右。 我试过了 而且我不断收到“组功能的无效使用-ErrNr 1111” 我究竟做错了什么? 我正在使用MySQL 4.1.25-Debian 问题答案: 在所有版本的MySQL中,只需在SELECT列表中为聚
问题内容: 我有一个非常希望直截了当的问题,在最近3个小时中,这一直给我带来很多困难。应该很容易。 这是挑战。 我有一个熊猫数据框: 我想要将数据框转换为: 值是值计数。有人有见识吗?谢谢! 问题答案: 这是重塑数据的几种方法 1) 使用 2) 或者,在over上使用,然后填充零。 3) 或者使用与, 4) 或者,与
我想得到这样的东西 我用groupby关键字搜索了stackoverflow,没有找到与我类似的问题。