L'entrée exemple dataframe comme suit:Pandas.DataFrame.apply retourne None valeurs
y1 y2 y3 y4 y5 y6
2.3 2.8 2.9 2.8 2.3 2.2
2.9 3 3.1 2.9 2.8 3
1.7 2.2 2.1 2.1 1.7 1.8
2 2.2 2.1 2.1 1.9 2.1
Je veux calculer chaque ligne de régression linéaire, et exécuter du code:
import numpy as np
import pandas as pd
import scipy.stats as st
df=pd.read_excel(r'test.xlsx')
def lrg(y,p):
x=np.arange(1,7)
k,_,r,p,_=st.linregress(x,y) #return 5 element tupe, I choose 3 of them.
if p=='k':
return k
if p=='r':
return r
if p=='p':
return p
col=['y'+str(i) for i in range(1,7)]
df['r']=df[col].apply(lambda y:lrg(y,'r'),axis=1) # add values r as new column
Pourquoi le retour df ' Les valeurs de la colonne r 'est None?
df:
y1 y2 y3 y4 y5 y6 r
0 2.3 2.8 2.9 2.8 2.3 2.2 None
1 2.9 3.0 3.1 2.9 2.8 3.0 None
2 1.7 2.2 2.1 2.1 1.7 1.8 None
3 2.0 2.2 2.1 2.1 1.9 2.1 None