Sum DataFrame Columns without Dropping Columns

user19087

I have this dataframe:

>>> d = pd.DataFrame(
 { "a": [1,1]
 , "b": [2,2]
 , "c": [4,5]
 , "d": [pd.Timedelta(hours=6),pd.Timedelta(hours=7)]
 , "e": [12.1,13.3]
 })
>>> d = d.set_index(["a","b","c"])
>>> d
                    d     e
a b c
1 2 4 0 days 06:00:00  12.1
    5 0 days 07:00:00  13.3
>>> d.dtypes
d    timedelta64[ns]
e            float64
dtype: object

I want a sum of each column, and I will need one version with skipna=True and one version with skipna=False. I expect this,

>>> d.sum(level=["a","b"])
                  d     e
a b
1 2 0 days 13:00:00  25.4

but I get this.

>>> d.sum(level=["a","b"])
        e
a b
1 2  25.4

One column has been dropped.

More info:

>>> pd.__version__
'1.2.3'
>>> sys.version_info
sys.version_info(major=3, minor=8, micro=8, releaselevel='final', serial=0)
piRSquared

Work Around #1 groupby/agg

d.groupby(level=['a', 'b']).agg({'d': 'sum', 'e': 'sum'})

                  d     e
a b                      
1 2 0 days 13:00:00  25.4

Work Around #2 apply

d.apply(pd.Series.sum, level=['a', 'b'])

                  d     e
a b                      
1 2 0 days 13:00:00  25.4

Note that you can pass other parameters as well

d.apply(pd.Series.sum, level=['a', 'b'], skipna=True)

                  d     e
a b                      
1 2 0 days 13:00:00  25.4

Work Around #3 groupby/numeric_only=False

Per @QuanhHoang

d.groupby(['a', 'b']).sum(numeric_only=False)

                  d     e
a b                      
1 2 0 days 13:00:00  25.4

Unfortunately, d.sum(level=['a', 'b'], numeric_only=False) still doesn't work.


Well I think that is strange!

What I think is happening is that Pandas is assuming that it isn't a numeric type and therefore not worthy of 'sum'.

However, I checked

np.issubdtype(d.dtypes.d, np.number)

True

Sooo /shrug IDK what is going on. I don't feel like looking too deep.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Dropping a number of columns in a pandas DataFrame on one line

From Dev

Sum alternate columns of a dataframe

From Dev

Sum different columns in R dataframe

From Dev

sort pandas dataframe by sum of columns

From Dev

sort pandas dataframe by sum of columns

From Dev

pandas groupby dropping columns

From Dev

Dropping columns using regex

From Dev

Pandas: dropping all columns with nans, 0, and NA from DataFrame

From Dev

Dropping Columns in a Dataframe based on if they have a particular letter in the title

From Dev

Pandas dataframe grouping by multiple columns and dropping duplicate rows

From Dev

Pandas: dropping all columns with nans, 0, and NA from DataFrame

From Dev

Pandas dataframe grouping by multiple columns and dropping duplicate rows

From Dev

shift columns of a dataframe without looping?

From Dev

Pandas - Dropping multiple empty columns

From Dev

dropping columns in multiple excel spreedsheets

From Dev

Dropping Columns of Specific Name in R

From Dev

R - infinite loop if for dropping columns

From Dev

Dropping multiple columns in pandas at once

From Dev

How to sum up the columns of a pandas dataframe according to the elements in one of the columns

From Dev

Repetitive sum of a number of columns without for loop in R

From Dev

Calculate SUM without Adding Values to Rows/Columns?

From Java

Max of sum of combinations across columns in a dataframe

From Java

Pandas: sum DataFrame rows for given columns

From Dev

Not calculating sum for all columns in pandas dataframe

From Dev

sum/average different columns in dataframe R

From Dev

grouping of dataframe find the count,sum on columns

From Dev

Not calculating sum for all columns in pandas dataframe

From Dev

Dataframe Sum contiguous columns following Duplicates

From Dev

Operating on selected columns of dataframe in R, without affecting other columns

Related Related

  1. 1

    Dropping a number of columns in a pandas DataFrame on one line

  2. 2

    Sum alternate columns of a dataframe

  3. 3

    Sum different columns in R dataframe

  4. 4

    sort pandas dataframe by sum of columns

  5. 5

    sort pandas dataframe by sum of columns

  6. 6

    pandas groupby dropping columns

  7. 7

    Dropping columns using regex

  8. 8

    Pandas: dropping all columns with nans, 0, and NA from DataFrame

  9. 9

    Dropping Columns in a Dataframe based on if they have a particular letter in the title

  10. 10

    Pandas dataframe grouping by multiple columns and dropping duplicate rows

  11. 11

    Pandas: dropping all columns with nans, 0, and NA from DataFrame

  12. 12

    Pandas dataframe grouping by multiple columns and dropping duplicate rows

  13. 13

    shift columns of a dataframe without looping?

  14. 14

    Pandas - Dropping multiple empty columns

  15. 15

    dropping columns in multiple excel spreedsheets

  16. 16

    Dropping Columns of Specific Name in R

  17. 17

    R - infinite loop if for dropping columns

  18. 18

    Dropping multiple columns in pandas at once

  19. 19

    How to sum up the columns of a pandas dataframe according to the elements in one of the columns

  20. 20

    Repetitive sum of a number of columns without for loop in R

  21. 21

    Calculate SUM without Adding Values to Rows/Columns?

  22. 22

    Max of sum of combinations across columns in a dataframe

  23. 23

    Pandas: sum DataFrame rows for given columns

  24. 24

    Not calculating sum for all columns in pandas dataframe

  25. 25

    sum/average different columns in dataframe R

  26. 26

    grouping of dataframe find the count,sum on columns

  27. 27

    Not calculating sum for all columns in pandas dataframe

  28. 28

    Dataframe Sum contiguous columns following Duplicates

  29. 29

    Operating on selected columns of dataframe in R, without affecting other columns

HotTag

Archive