0

I have a Pandas Series with the following values. How can we perform integration to find the area under this plot?

Hour
0.00000    1.195617
0.23990    2.408227
0.47980    1.256069
0.71970    2.227347
0.95960    1.397774
1.19949    1.896309
1.43939    1.309016
1.67929    1.827614
1.91919    1.383252
2.15909    1.630766
2.39899    1.360364
2.63889    1.541367
2.87879    1.560319
3.11869    0.743437
3.35859    1.549370
...
20.39141    2.067811
20.63131    1.938257
20.87121    1.944990
21.11111    1.853212
21.35101    1.702590
21.59091    1.746243
21.83081    2.337570
22.07071    3.773000
22.31061    1.532937
22.55051    1.178040
22.79040    1.850222
23.03030    1.092376
23.27020    1.895959
23.51010    0.966083
23.75000    1.950073
Name: Cost, Length: 100, dtype: float64

Tried the integration function from the cookbook but it's throwing an error

TypeError: Setting <class 'pandas.core.index.Float64Index'> dtype to anything other than float64 or object is not supported
1
  • Please show the full stack trace leading to the TypeError as otherwise it's impossible to tell which code is erroneously trying to set that dtype. Commented Dec 22, 2014 at 18:50

1 Answer 1

1

The recipe in the cookbook requires you to use a pd.TimeSeries and not pd.Series. You can convert your index to a pd.Timestamp like so to get a pd.TimeSeries

i = [0.00000,
0.23990,
0.47980,
0.71970,
0.95960,
1.19949,
1.43939,
1.67929,
1.91919,
2.15909,
2.39899,
2.63889,
2.87879,
3.11869,
3.35859] 
c = [1.195617,
2.408227,
1.256069,
2.227347,
1.397774,
1.896309,
1.309016,
1.827614,
1.383252,
1.630766,
1.360364,
1.541367,
1.560319,
0.743437,
1.549370]

import pandas as pd
s = pd.TimeSeries (index = [pd.Timestamp(k) for k in i], data = c)
s.integrate()

This should yield,

Out[29]:
4.3059284999999994e-09
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.