Search code examples
pythonpandaslistdataframeaverage

How to get average of a list in pandas dataframe


Here is my dataframe. I am looking to calculate the average of the current, voltage, and power of each switch individually.

                  switch12            switch11            switch10
Current  [0.1, 0.12, 0.15]  [0.15, 0.11, 0.13]  [0.18, 0.17, 0.15]
Voltage         [120, 118]          [120, 116]          [120, 117]
Power             [12, 25]            [18, 19]        [21.6, 22.4]

looking to have the output be something like this:

                  switch12            switch11            switch10
Current              0.123               0.130               0.167
Voltage                119                 118               118.5
Power                 18.5                18.5                22.0

if there is another method which does not utilize pandas to help with this I am open to hearing about that too


Solution

  • Another method:

    out = df.explode([*df.columns]).groupby(level=0).mean()
    print(out)
    

    Prints:

               switch12  switch11    switch10
    Current    0.123333      0.13    0.166667
    Power     18.500000     18.50   22.000000
    Voltage  119.000000    118.00  118.500000