Pandas интегрирует столбцы в каждой строкеPython

Программы на Python
Anonymous
Pandas интегрирует столбцы в каждой строке

Сообщение Anonymous »


В упрощенном фрейме данных:

Код: Выделить всё

import pandas as pd

df1 = pd.DataFrame({'350': [7.898167, 6.912074, 6.049002, 5.000357, 4.072320],
'351': [8.094912, 7.090584, 6.221289, 5.154516, 4.211746],
'352': [8.291657, 7.269095, 6.393576, 5.308674, 4.351173],
'353': [8.421007, 7.374317, 6.496641, 5.403691, 4.439815],
'354': [8.535562, 7.463452, 6.584512, 5.485725, 4.517310],
'355': [8.650118, 7.552586, 6.672383, 4.517310, 4.594806]},
index=[1, 2, 3, 4, 5])

int_range = df1.columns.astype(float)
a = 0.005
b = 0.837
I would like to solve an equation which is attached as an image below:

Изображение

I is equal to the values in the data frame. x is the int_range values so in this case from 350 to 355 with a dx=1.
a and b are optional constants

I need to get a dataframe as an output per each row

For now I do something like this, but I'm not sure it's correct:

Код: Выделить всё

dict_INT = {}
for index, row in df1.iterrows():

func = df1.loc[index]*df1.loc[index].index.astype('float')
x    = df1.loc[index].index.astype('float')

dict_INT[index] = integrate.trapz(func, x)

df_out = pd.DataFrame(dict_INT, index=['INT']).T

df_fin = df_out/(a*b)
This is the final sum I get per row:

Код: Выделить всё

1  3.505796e+06
2  3.068796e+06
3  2.700446e+06
4  2.199336e+06
5  1.840992e+06


Источник: https://stackoverflow.com/questions/523 ... r-each-row

Вернуться в «Python»