汇总熊猫中的列值并将总计附加或合并到数据框?

泽维尔

我得到了这个功能:

def source_revenue(self):
    items = self.data.items()
    df = pandas.DataFrame(
        {'SOURCE OF BUSINESS': [i[0] for i in items], 'INCOME': [i[1] for i in items]})
    pivoting = pd.pivot_table(df, index=['SOURCE OF BUSINESS'], values=['INCOME'])
    suming = pivoting.sum(index=(0), columns=(1))

此函数产生以下结果:

INCOME    216424.9
dtype: float64

不求和,它将返回完整的数据帧,如下所示:

                               INCOME
SOURCE OF BUSINESS                    
BYD - Other                      500.0
BYD - Retail                    1584.0
BYD - Transport                42498.0
BYD Beverage - A La Carte      39401.5
BYD Food - A La Carte 瓦厂食品-零点  68365.0
BYD Food - Catering Banquet    53796.0
BYD Rooms 瓦厂房间                  5148.0
GS - Retail                      386.0
GS Food - A La Carte              48.0
Orchard Retail                   130.0
SCH - Food - A La Carte           96.0
SCH - Retail                     375.4
SCH - Transport                  888.0
SCH Beverage - A La Carte        119.0
Spa                             3052.0
XLM Beverage - A La Carte         38.0

我这样做的原因是因为我试图获取所有返回的行的总数,将它们求和并将总数附加到数据帧。

最初,我尝试使用margins = True(我在这里读到要对总数求和并将其附加到数据框,而不是true)

因此,我想知道是否有一种方法可以返回数据框,但是也可以对这些值求和并将总和附加到数据框的末尾,就像这样margins = True做一样。

耶斯列尔

我认为您可以将groupby用作pivot_table,因为这里groupby速度更快。

您可以使用pivot_table,但默认aggfunc值为np.mean很容易忘记它:

pivoting = pd.pivot_table(df, 
                          index=['SOURCE OF BUSINESS'], 
                          values=['INCOME'], 
                          aggfunc=np.mean)

我认为您需要aggfunc=np.sum

print df
     A    B      C  D
0  zoo  one  small  1
1  zoo  one  large  2
2  zoo  one  large  2
3  foo  two  small  3
4  foo  two  small  3
5  bar  one  large  4
6  bar  one  small  5
7  bar  two  small  6
8  bar  two  large  7

print pd.pivot_table(df, values='D', index=['A'], aggfunc=np.sum)
A
bar    22
foo     6
zoo     5
Name: D, dtype: int64

df1 = df.groupby('A')['D'].sum()
print df1
A
bar    22
foo     6
zoo     5
Name: D, dtype: int64

如果需要添加Total到Series,请使用locsum

print df1.sum()
33

df1.loc['Total'] = df1.sum()
print df1
A
bar      22
foo       6
zoo       5
Total    33
Name: D, dtype: int64

时间

In [111]: %timeit df.groupby('A')['D'].sum()
1000 loops, best of 3: 581 µs per loop

In [112]: %timeit pd.pivot_table(df, values='D', index=['A'], aggfunc=np.sum)
100 loops, best of 3: 2.28 ms per loop

添加Total在您df通过与放大设置

print df
                              INCOME
SOURCE OF BUSINESS                  
BYD - Other                    500.0
BYD - Retail                  1584.0
BYD - Transport              42498.0
BYD Beverage - A La Carte    39401.5
BYD Food - A La Carte        68365.0
BYD Food - Catering Banquet  53796.0
BYD Rooms                     5148.0
GS - Retail                    386.0
GS Food - A La Carte            48.0
Orchard Retail                 130.0
SCH - Food - A La Carte         96.0
SCH - Retail                   375.4
SCH - Transport                888.0
SCH Beverage - A La Carte      119.0
Spa                           3052.0
XLM Beverage - A La Carte       38.0
df.loc['Total', 'INCOME'] = df['INCOME'].sum()
print df
                               INCOME
SOURCE OF BUSINESS                   
BYD - Other                     500.0
BYD - Retail                   1584.0
BYD - Transport               42498.0
BYD Beverage - A La Carte     39401.5
BYD Food - A La Carte         68365.0
BYD Food - Catering Banquet   53796.0
BYD Rooms                      5148.0
GS - Retail                     386.0
GS Food - A La Carte             48.0
Orchard Retail                  130.0
SCH - Food - A La Carte          96.0
SCH - Retail                    375.4
SCH - Transport                 888.0
SCH Beverage - A La Carte       119.0
Spa                            3052.0
XLM Beverage - A La Carte        38.0
Total                        216424.9

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将汇总计数合并到现有的SQL查询中

来自分类Dev

将数据框合并到列表中

来自分类Dev

通过熊猫数据框中的列中的重复值进行汇总

来自分类Dev

根据熊猫索引将熊猫列从数据框合并到另一个数据框

来自分类Dev

熊猫根据列中的相同值合并数据框

来自分类Dev

熊猫:将数据框列合并到列表中

来自分类Dev

汇总熊猫中的列值并将总计附加或合并到数据框?

来自分类Dev

汇总熊猫数据框中的列组

来自分类Dev

熊猫合并数据框列

来自分类Dev

熊猫合并中的汇总映射值

来自分类Dev

根据熊猫数据框中的两列合并单元格值

来自分类Dev

在熊猫数据框中附加两列的最小值

来自分类Dev

根据列中的值合并熊猫数据框

来自分类Dev

合并熊猫数据框:如何添加列和替换值

来自分类Dev

如何将一列从数据框(B)合并到数据框(A),但如何使列(Y)由数据框(A)另一列中的值组织?

来自分类Dev

分组,应用功能并将结果合并到数据框中

来自分类Dev

熊猫通过存储在多列中的查找值合并多个数据框

来自分类Dev

大熊猫-根据多行中的值将汇总列数据的行添加到数据框中

来自分类Dev

熊猫:将两个不同大小的数据框合并到一列

来自分类Dev

循环请求并附加或合并到熊猫数据框

来自分类Dev

汇总来自不同数据框的列的熊猫

来自分类Dev

如何合并数据框列中的值

来自分类Dev

通过熊猫数据框中的列中的重复值进行汇总

来自分类Dev

如何将熊猫计算的序列合并到熊猫数据框中

来自分类Dev

如何合并到两个熊猫数据框?

来自分类Dev

合并熊猫数据框中的 2 列,用以前的值填充 NaN

来自分类Dev

如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

来自分类Dev

在数据框中查找包含一对公共值的行,并将它们合并到第三列

来自分类Dev

熊猫数据框:如何将 1 和 0 的列合并到新列

Related 相关文章

  1. 1

    将汇总计数合并到现有的SQL查询中

  2. 2

    将数据框合并到列表中

  3. 3

    通过熊猫数据框中的列中的重复值进行汇总

  4. 4

    根据熊猫索引将熊猫列从数据框合并到另一个数据框

  5. 5

    熊猫根据列中的相同值合并数据框

  6. 6

    熊猫:将数据框列合并到列表中

  7. 7

    汇总熊猫中的列值并将总计附加或合并到数据框?

  8. 8

    汇总熊猫数据框中的列组

  9. 9

    熊猫合并数据框列

  10. 10

    熊猫合并中的汇总映射值

  11. 11

    根据熊猫数据框中的两列合并单元格值

  12. 12

    在熊猫数据框中附加两列的最小值

  13. 13

    根据列中的值合并熊猫数据框

  14. 14

    合并熊猫数据框:如何添加列和替换值

  15. 15

    如何将一列从数据框(B)合并到数据框(A),但如何使列(Y)由数据框(A)另一列中的值组织?

  16. 16

    分组,应用功能并将结果合并到数据框中

  17. 17

    熊猫通过存储在多列中的查找值合并多个数据框

  18. 18

    大熊猫-根据多行中的值将汇总列数据的行添加到数据框中

  19. 19

    熊猫:将两个不同大小的数据框合并到一列

  20. 20

    循环请求并附加或合并到熊猫数据框

  21. 21

    汇总来自不同数据框的列的熊猫

  22. 22

    如何合并数据框列中的值

  23. 23

    通过熊猫数据框中的列中的重复值进行汇总

  24. 24

    如何将熊猫计算的序列合并到熊猫数据框中

  25. 25

    如何合并到两个熊猫数据框?

  26. 26

    合并熊猫数据框中的 2 列,用以前的值填充 NaN

  27. 27

    如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

  28. 28

    在数据框中查找包含一对公共值的行,并将它们合并到第三列

  29. 29

    熊猫数据框:如何将 1 和 0 的列合并到新列

热门标签

归档