目标
我有一个Pandas数据框,如下所示,具有多个列,并希望获取列的总数MyColumn
。
数据框 -df
:
print df
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
我的尝试 :
我试图使用groupby
和获得列的总和.sum()
:
Total = df.groupby['MyColumn'].sum()
print Total
这将导致以下错误:
TypeError: 'instancemethod' object has no attribute '__getitem__'
预期产量
我期望输出如下:
319
或者,我想df
编辑一个包含总数的新row
标题TOTAL
:
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
TOTAL 319
您应该使用sum
:
Total = df['MyColumn'].sum()
print (Total)
319
然后loc
与配合使用Series
,在这种情况下,索引应设置为与需要求和的特定列相同:
df.loc['Total'] = pd.Series(df['MyColumn'].sum(), index = ['MyColumn'])
print (df)
X MyColumn Y Z
0 A 84.0 13.0 69.0
1 B 76.0 77.0 127.0
2 C 28.0 69.0 16.0
3 D 28.0 28.0 31.0
4 E 19.0 20.0 85.0
5 F 84.0 193.0 70.0
Total NaN 319.0 NaN NaN
因为如果传递标量,则将填充所有行的值:
df.loc['Total'] = df['MyColumn'].sum()
print (df)
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
Total 319 319 319.0 319.0
另有两个解决方案at
,ix
请参见以下应用程序:
df.at['Total', 'MyColumn'] = df['MyColumn'].sum()
print (df)
X MyColumn Y Z
0 A 84.0 13.0 69.0
1 B 76.0 77.0 127.0
2 C 28.0 69.0 16.0
3 D 28.0 28.0 31.0
4 E 19.0 20.0 85.0
5 F 84.0 193.0 70.0
Total NaN 319.0 NaN NaN
df.ix['Total', 'MyColumn'] = df['MyColumn'].sum()
print (df)
X MyColumn Y Z
0 A 84.0 13.0 69.0
1 B 76.0 77.0 127.0
2 C 28.0 69.0 16.0
3 D 28.0 28.0 31.0
4 E 19.0 20.0 85.0
5 F 84.0 193.0 70.0
Total NaN 319.0 NaN NaN
注意: 自Pandas v0.20起,ix
已弃用。使用loc
或iloc
代替。
问题内容: 我正在使用SQLite,并尝试返回该列中某一列的总数,同时返回所有数据。我不想/不需要对数据进行分组,因为我需要在每个返回的行中都包含数据。 当我包含类似内容时, 它仅返回一行。我需要所有返回的行以及所有条目的总数。 问题答案: 听起来这就是您要寻找的内容: 参见带有演示的SQL Fiddle
问题内容: 如何获得熊猫timedelta中的总小时数? 例如: 注意:根据文档,该属性将返回小时 部分 : 问题答案: 只需找出适合1小时的时间:
问题内容: 我有一个如下所示的Pandas DataFrame: 我想跨列获取某个值的计数。所以我的预期输出是这样的: 我知道如何跨行执行此操作,但是对列执行此操作有点奇怪?请帮助我解决这个问题吗?谢谢。 问题答案: 首先将其堆叠,然后使用value_counts:
我有一个带有数值的数据框。添加表示每列总和的行(具有给定索引值)的最简单方法是什么?
问题内容: 这应该很容易,但是以某种方式我找不到有效的解决方案。 我有一个熊猫数据框,看起来像这样: 我想按col1和col2分组并获得col3和col4。 由于无法汇总数据,因此可以删除。 这是输出的样子。我很感兴趣,同时具有和中产生的数据帧。是否和是否属于索引并不重要。 这是我尝试过的: 但是,这只会返回的汇总结果。 我在这里迷路了。我发现的每个示例仅汇总一列,显然不会发生此问题。 问题答案:
我有一个熊猫数据框,其中包含如下所示的数据: 所以ID可以在特定月份的任何类下,下个月他的类可能会改变。现在我想做的是,为每个ID获取它在特定类别下的月数,以及它属于的最新类别。像下面这样: 如何在python中实现这一点。有人能帮我吗?另外,由于真实的数据集是巨大的,并且无法手动验证,我如何才能获得属于多个类的ID列表?