简体   繁体   English

Pandas Group-By 和 Sum 没有创建新的数据框

[英]Pandas Group-By and Sum not creating a new Data Frame

I have a dataframe -我有一个 dataframe -

     TransactionDT  TransactionAmt  TransactionHour
   0    86400          68.5                 0
   1    86401          29.0                 1
   2    86469          59.0                 1
   3    86499          50.0                 2
   4    86506          50.0                 3

I want to create a new data frame that sums TransactionAmt grouping by TransactionHour , like -我想创建一个新的数据框,将TransactionHourTransactionAmt分组相加,例如-

        Sum(TransactionAmt) TransactionHour
     0         68.5                 0
     1         88.0                 1        (sum of those with TransactionHour == 1)      
     2         50.0                 2
     3         50.0                 3

The code I wrote was -我写的代码是 -

sliced_data2 = data.groupby(['TransactionHour'])['TransactionAmt'].sum()

But it only gives me the Sum(TransactionHour)但它只给了我Sum(TransactionHour)

sliced_data2 = data.groupby('TransactionHour',as_index = False).agg({"TransactionAmt" : "sum"})

sliced_data2 = data.groupby(['TransactionHour'])['TransactionAmt'].agg('sum')

This will work这将起作用

raw_data = {'TransactionDT':      [86400, 86401, 86469, 86499, 86506],
            'TransactionAmt':     [68.5, 29.0, 59.0, 50.0, 50.0],
            'TransactionHour':    [0,1,1,2,3]}

df = pd.DataFrame(raw_data)

df.groupby('TransactionHour',as_index = False).agg({"TransactionAmt" : "sum"})

You need to add as_index=False` to make sure you are not setting the column that's being grouped as the new index for the dataframe.您需要添加 as_index=False` 以确保您没有将被分组为 dataframe 的新索引的列设置。

import pandas as pd
a = {'TransactionDT':[86400, 86401, 86469, 86499, 86506],'TransactionAmt':[68.5, 29.0, 59.0, 50.0, 50.0],'TransactionHour':[0,1,1,2,3]}
df = pd.DataFrame(a)
sliced_df = df.groupby(['TransactionHour'],as_index=False)['TransactionAmt'].sum())
print(sliced_df)

Output: Output:

   TransactionHour  TransactionAmt
0                0            68.5
1                1            88.0
2                2            50.0
3                3            50.0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM