Pandas Dataframe – Как получить доступ к определенным индексированным элементам для математических вычислений?Python

Программы на Python
Ответить
Anonymous
 Pandas Dataframe – Как получить доступ к определенным индексированным элементам для математических вычислений?

Сообщение Anonymous »

Каков правильный/питонический способ выполнения математических вычислений с несколькими индексированными элементами в кадре данных Pandas?
Я попробовал несколько способов, но они кажутся неуклюжими и запутанными:
df = pd.DataFrame({'x': [1, 2, 3, 4, 5, 6, 7, 9, ]})
df['y']= df['x']/2

print(df)
def printEpr(x):
print(F"""End Point Rate:
{epr} dy/dx""")

epr =(df['y'][7] - df['y'][0])/(df['x'][7] - df['x'][0])
printEpr(epr)

epr = (df.iloc[[-1],[1]].values - df.iloc[[0],[1]].values) / (df.iloc[[-1],[0]].values - df.iloc[[1],[0]].values)
printEpr(epr)

#epr = (df['y'] - df.iloc[0,'y'])/(df.iloc[-1,'x'] - df.iloc[0,'x'])
#printEpr(epr)

yind = df.columns.get_loc('y')
xind = df.columns.get_loc('x')
epr = (df.iloc[-1,yind] - df.iloc[0,yind])/(df.iloc[-1,xind] - df.iloc[0,xind])
printEpr(epr)

#epr = (df.iloc[-1,'y'] - df.iloc[0,'y'])/(df.iloc[-1,'x'] - df.iloc[0,'x'])
#printEpr(epr)

С результатами:
x y
0 1 0.5
1 2 1.0
2 3 1.5
3 4 2.0
4 5 2.5
5 6 3.0
6 7 3.5
7 9 4.5
End Point Rate:
0.5 dy/dx
End Point Rate:
[[0.57142857]] dy/dx
End Point Rate:
0.5 dy/dx


Подробнее здесь: https://stackoverflow.com/questions/798 ... s-for-math
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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