Как использовать определенные строки данных в формуле - PullRequest
0 голосов
/ 19 марта 2020

Итак, у меня есть несколько фреймов данных, и все они нуждаются в одинаковой формуле, примененной к определенным наборам в этом фрейме данных. Я получил расположение наборов внутри df, но я не знаю, как получить доступ к этим наборам. Это мой код:

import pandas as pd
import numpy as np 
import matplotlib.pyplot as plt #might used/need it later to check the output
df = pd.read_csv('Dalfsen.csv')
l = []
x = []
y = []
#the formula(trendline)
def rechtzetten(x,y): 
    a = (len(x)*sum(x*y)- sum(x)*sum(y))/(len(x)*sum(x**2)-sum(x)**2)
    b = (sum(y)-a*sum(x))/len(x)
    y1 = x*a+b
    print(y1)

METING = df.ID.str.contains("<METING>") #locating the sets
indicatie = np.where(METING == False)[0] #and saving them somewhere


if n in df[n] != indicatie & n+1 != indicatie: #attempt to add parts of the set in l
    append.l
elif n in df[n] != indicatie & n+1 == indicatie: #attempt defining the end of the set and using the formula for the set
    append.l
    rechtzetten(l.x, l.y)
else: #emptying the storage for the new set
    l = []

indicatie имеет следующие цифры:

 0  12  13  26  27  40  41  53  54  66  67  80  81  94  95 108 109 121
 122 137 138 149 150 162 163 177 178 190 191 204 205 217 218 229 230 242
 243 255 256 268 269 291 292 312 313 340 341 373 374 401 402 410 411 420
 421 430 431 449 450 468 469 487 488 504 505 521 522 538 539 558 559 575
 576 590 591 604 605 619 620 633 634 647

Поскольку мой df выглядит так:

ID,NUM,x,y,nap,abs,end
<PROFIEL>not used data
<METING>data</METING>
<METING>data</METING>
...
<METING>data</METING>
<METING>data</METING>
</PROFIEL>,,,,,,
<PROFIEL>not usde data
...
</PROFIEL>,,,,,,

tl; dr Я пытаюсь использовать формулу в каждом профиле, как показано выше. Я хочу отредактировать данные между двумя номерами списка, указывающими ie. Например: функция rechtzetten (x, y) для x и y df.x & df.y [1:11] (поскольку [0] & [12] в списке указывают ie. ) И то же самое для [14:25] et c. и др c. Чего я стараюсь избегать, так это набираю следующие сотни раз вручную:

x_#=df.x[1:11]
y_#=df.y[1:11]
rechtzetten(x_#,y_#)

1 Ответ

0 голосов
/ 19 марта 2020

Я не могу ясно понять ваш вопрос, но если вы хотите заменить указанный c столбец вашего pandas массива данных на массив numpy, вы можете просто назначить его:

df['Column'] = numpy_array

Вы можете быть более ясным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...