#python #pandas #dataframe #pyspark #outliers
Вопрос:
Я только начал с Python и науки о данных, и сейчас я очень застрял. Поэтому мне нужно оценить выбросы в этом наборе данных. Код приведен ниже
from pandasql import sqldf
q="""SELECT DISTINCT site, utility FROM df_read;"""
pysqldf = lambda q: sqldf(q, globals())
a_df = pysqldf(q)
a_ls = a_df.values.tolist()
print(a_ls)
def plot_df(df, x, y,y1,y2,y3, title="", xlabel='Date', ylabel='Value', dpi=100):
plt.figure(figsize=(16,5), dpi=dpi)
plt.plot(x, y, color='tab:blue')
plt.plot(x,y1,color='tab:red')
plt.plot(x,y2,color='tab:red')
plt.plot(x,y3,color='tab:red')
plt.gca().set(title=title, xlabel=xlabel, ylabel=ylabel)
plt.show()
from scipy.stats.mstats import winsorize
def outlier_v2():
df_r.reset_index(inplace=True)
df_r.drop(['index'],axis=1,inplace=True)
df_r["converted_value_adjusted"] = df_r["converted_value"]
winsorized_value = winsorize(df_r['converted_value'], limits=[0.00, 0.05])
df_r["converted_value_adjusted"] = winsorized_value
df_all = []
for entry in a_ls:
df_r = df_read[(df_read["site"]==entry[0]) amp; (df_read["utility"] == entry[1])].copy()
tags = df_r['tag'].unique()
for tag_v in tags:
df_r = df_read[(df_read["site"]==entry[0]) amp; (df_read["utility"] == entry[1]) amp; (df_read["tag"] == tag_v)].copy()
outlier_v2()
results = spark.createDataFrame(results)
display(results)
Ошибка, которую я получаю, заключается в следующем:
Ошибка индекса: индекс -1 выходит за рамки для оси 0 с размером 0
Я действительно ничего не понимаю прямо сейчас