import pandas as pd
import numpy as np
import mysql.connector
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn import metrics
from sklearn.metrics import classification_report
pp_prekes_2020=pd.read_csv('C:\\...\\CSV\\Pardavimai_pagal_prekes_2020.csv')
pp_prekes_2021=pd.read_csv('C:\\...\\CSV\\Pardavimai_pagal_prekes_2021.csv')
pp_pirkeja_2020=pd.read_csv('C:\\...\\CSV\\Pardavimai_pagal_pirkeja_2020.csv')
pp_pirkeja_2021=pd.read_csv('C:\\...\\CSV\\Pardavimai_pagal_pirkeja_2021.csv')
sqldb = mysql.connector.connect(
host="localhost",
port="3306",
user="root",
password="****"
)
cursor = sqldb.cursor()
cursor.execute("SHOW DATABASES")
for i in cursor:
print(i)
('information_schema',) ('mysql',) ('performance_schema',) ('sakila',) ('sys',) ('world',)
padalinys = pd.read_sql('SELECT * FROM sakila.padalinys', con=sqldb)
pp_pirkeja_2020.head(2)
Kliento_id | Kliento_pavadinimas | Dokumento_id | Data | Padalinio_id | Prekės_id | Prekės_pavadinimas | Kiekis | Suma | PVM | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 01 | Kasos pirkėjai | POS20200204 | 2020.02.04 00:00 | 01 | 0024317026XL | CORE COTTON POLO | 1 | 10.07 | 2.12 |
1 | 01 | Kasos pirkėjai | POS20200218 | 2020.02.18 00:00 | 01 | 0024549001M | DUNKER LS POLO | 1 | 7.44 | 1.56 |
pp_prekes_2020.head(2)
Padalinio_id | Prekės_id | Prekės_pavadinimas | Kiekis | Suma | Suma_G | Suma_P | Suma_savikaina | Pelnas | |
---|---|---|---|---|---|---|---|---|---|
0 | 00 | 0036319124S | HUMMEL SIRIUS SS JERSEY | 3 | 24.79 | 0.0 | 24.79 | -21.12 | 3.67 |
1 | 00 | 0036362001M | CORE SS POLY JERSEY | 2 | 25.62 | 0.0 | 25.62 | -11.32 | 14.30 |
padalinys.rename(columns={'ļ»æPadalinio_id':'Padalinio_id'}, inplace=True)
padalinys.head(2)
Padalinio_id | Padalinio_pavadinimas | |
---|---|---|
0 | 00 | Rezervacija |
1 | 01 | Sandelys |
pp_pirkeja_2020['Metai']='2020'
pp_pirkeja_2021['Metai']='2021'
pp_prekes_2020['Metai']='2020'
pp_prekes_2021['Metai']='2021'
pp_prekes_2020['New_id']=pp_prekes_2020['Padalinio_id'] + '_' + pp_prekes_2020['Prekės_id']
pp_prekes_2021['New_id']=pp_prekes_2021['Padalinio_id'] + '_' + pp_prekes_2021['Prekės_id']
pp_pirkeja_2020['New_id']=pp_pirkeja_2020['Padalinio_id'] + '_' + pp_pirkeja_2020['Prekės_id']
pp_pirkeja_2021['New_id']=pp_pirkeja_2021['Padalinio_id'] + '_' + pp_pirkeja_2021['Prekės_id']
pp_prekes_2020.drop(pp_prekes_2020[pp_prekes_2020['Suma_savikaina']==0].index,inplace=True)
pp_prekes_2020.drop(pp_prekes_2020[pp_prekes_2020['Kiekis']==0].index,inplace=True)
pp_prekes_2020['Prekės_savikaina']=((pp_prekes_2020['Suma_savikaina']/pp_prekes_2020['Kiekis'])*-1).round(2)
pp_prekes_2021.drop(pp_prekes_2021[pp_prekes_2021['Kiekis']==0].index,inplace=True)
pp_prekes_2021.drop(pp_prekes_2021[pp_prekes_2021['Suma_savikaina']==0].index,inplace=True)
pp_prekes_2021['Prekės_savikaina']=((pp_prekes_2021['Suma_savikaina']/pp_prekes_2021['Kiekis'])*-1).round(2)
pardavimai_20=pd.merge(pp_pirkeja_2020, pp_prekes_2020, on=['New_id'], how='left')
pardavimai_21=pd.merge(pp_pirkeja_2021, pp_prekes_2021, on=['New_id'], how='left')
pardavimai_20_21=pd.concat([pardavimai_20,pardavimai_21])
pardavimai_20_21.rename(columns={'Padalinio_id_x':'Padalinio_id'}, inplace=True)
pardavimai_20_21=pd.merge(pardavimai_20_21, padalinys, on=['Padalinio_id'], how='left')
pardavimai_20_21.rename(columns={'Metai_x':'Metai', 'Prekės_id_x':'Prekės_id', 'Prekės_pavadinimas_x':'Prekės_pavadinimas', 'Kiekis_x':'Kiekis', 'Suma_x':'Suma'}, inplace=True)
pardavimai =pardavimai_20_21[['Metai','Data','Dokumento_id', 'Padalinio_id', 'Padalinio_pavadinimas', 'Kliento_id', 'Kliento_pavadinimas', 'Prekės_id', 'Prekės_pavadinimas', 'Kiekis', 'Suma', 'Prekės_savikaina']]
pardavimai=pardavimai.dropna(subset=['Prekės_savikaina'])
pardavimai['Pelnas']=(pardavimai['Suma']-pardavimai['Prekės_savikaina']*pardavimai['Kiekis']).round(2)
pardavimai['Pelningumas']=(pardavimai['Pelnas']/pardavimai['Suma']).round(2)
pardavimai['Data'] = pd.to_datetime(pardavimai['Data'])
pardavimai['Mėnuo'] = pardavimai['Data'].dt.month
pardavimai['Ketvirtis'] = pd.PeriodIndex(pardavimai.Data, freq='Q')
pardavimai['Savaitės_diena'] = pardavimai['Data'].dt.weekday
Dydis=pd.read_csv('C:\\Users\\vofka\\Desktop\\BIG DATA\\PYTHON\\Atsiskaitymui\\HM\\CSV\\Dydis.csv')
pardavimai=pd.merge(pardavimai, Dydis, left_index=True, right_on='Unnamed: 0')
def parama(s):
return 'Butkevičius' in s
pardavimai['Parama']=pardavimai['Kliento_pavadinimas'].map(parama)
Parama=pardavimai[pardavimai['Parama']==True]
pardavimai=pardavimai[pardavimai['Parama']==False]
pardavimai
Metai | Data | Dokumento_id | Padalinio_id | Padalinio_pavadinimas | Kliento_id | Kliento_pavadinimas | Prekės_id_x | Prekės_pavadinimas | Kiekis | ... | Pelnas | Pelningumas | Mėnuo | Ketvirtis | Savaitės_diena | Unnamed: 0 | Prekės_id_y | Dydis | Parama | Kaina | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2020 | 2020-02-04 | POS20200204 | 01 | Sandelys | 01 | Kasos pirkėjai | 0024317026XL | CORE COTTON POLO | 1 | ... | 1.95 | 0.19 | 2 | 2020Q1 | 1 | 0 | 0024317026XL | xl | False | 10.07 |
1 | 2020 | 2020-02-18 | POS20200218 | 01 | Sandelys | 01 | Kasos pirkėjai | 0024549001M | DUNKER LS POLO | 1 | ... | -7.01 | -0.94 | 2 | 2020Q1 | 1 | 1 | 0024549001M | m | False | 7.44 |
2 | 2020 | 2020-06-02 | POS20200602 | 01 | Sandelys | 01 | Kasos pirkėjai | 0036315001M | HUMMEL SIRIUS SS JERSEY | 1 | ... | -5.20 | -1.26 | 6 | 2020Q2 | 1 | 2 | 0036315001M | m | False | 4.13 |
3 | 2020 | 2020-06-03 | POS20200603 | 01 | Sandelys | 01 | Kasos pirkėjai | 0036315001XL | HUMMEL SIRIUS SS JERSEY | 1 | ... | -5.25 | -1.27 | 6 | 2020Q2 | 2 | 3 | 0036315001XL | xl | False | 4.13 |
4 | 2020 | 2020-06-05 | POS20200605 | 01 | Sandelys | 01 | Kasos pirkėjai | 0036315001XL | HUMMEL SIRIUS SS JERSEY | 2 | ... | -2.22 | -0.13 | 6 | 2020Q2 | 4 | 4 | 0036315001XL | xl | False | 8.27 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
150595 | 2021 | 2021-12-30 | VB210888 | K31 | siauliai po inventorizacijos | 305208983 | MB "Sportspotas" | 94003720012X | HMLCANOLLO WAISTCOAT | 1 | ... | 7.94 | 0.27 | 12 | 2021Q4 | 3 | 152323 | 94003720012X | NaN | False | 29.75 |
150596 | 2021 | 2021-12-30 | VB210888 | K31 | siauliai po inventorizacijos | 305208983 | MB "Sportspotas" | 940038200112 | hmlCASSANDY ZIP COAT | 1 | ... | 8.82 | 0.23 | 12 | 2021Q4 | 3 | 152324 | 940038200112 | NaN | False | 38.35 |
150597 | 2021 | 2021-12-30 | VB210888 | K31 | siauliai po inventorizacijos | 305208983 | MB "Sportspotas" | 94014420012X | HMLESTOS ZIP COAT | 1 | ... | 26.30 | 0.41 | 12 | 2021Q4 | 3 | 152325 | 94014420012X | NaN | False | 64.46 |
150598 | 2021 | 2021-12-30 | VB210888 | K31 | siauliai po inventorizacijos | 305208983 | MB "Sportspotas" | 980139200111 | HMLALENC BAG PACK | 1 | ... | 6.08 | 0.39 | 12 | 2021Q4 | 3 | 152326 | 980139200111 | NaN | False | 15.62 |
150599 | 2021 | 2021-12-30 | VB210888 | K31 | siauliai po inventorizacijos | 305208983 | MB "Sportspotas" | MARSKINELIAI | Marškinėliai BC | 1 | ... | -1.65 | -0.67 | 12 | 2021Q4 | 3 | 152327 | MARSKINELIAI | NaN | False | 2.48 |
148107 rows × 22 columns
pardavimai_pagal_menesi = pardavimai.groupby(['Metai','Mėnuo'])['Suma'].sum()
pd.DataFrame (pardavimai_pagal_menesi)
Suma | ||
---|---|---|
Metai | Mėnuo | |
2020 | 1 | 177987.69 |
2 | 199718.17 | |
3 | 109502.02 | |
4 | 65317.63 | |
5 | 160014.94 | |
6 | 168094.74 | |
7 | 173301.49 | |
8 | 181821.04 | |
9 | 173595.74 | |
10 | 118802.70 | |
11 | 117709.11 | |
12 | 120754.25 | |
2021 | 1 | 99058.95 |
2 | 101116.46 | |
3 | 184347.69 | |
4 | 186548.74 | |
5 | 164973.47 | |
6 | 145524.60 | |
7 | 173116.71 | |
8 | 178628.28 | |
9 | 191603.21 | |
10 | 151444.94 | |
11 | 123461.69 | |
12 | 149279.88 |
y1=pardavimai[pardavimai['Metai']=='2020'].groupby( 'Mėnuo')['Suma'].sum()
y2=pardavimai[pardavimai['Metai']=='2021'].groupby( 'Mėnuo')['Suma'].sum()
z1=pardavimai[pardavimai['Metai']=='2020'].groupby( 'Mėnuo')['Kiekis'].sum()
z2=pardavimai[pardavimai['Metai']=='2021'].groupby( 'Mėnuo')['Kiekis'].sum()
y1.plot(title='Pajamos ir parduotų prekių kiekis per mėnesį ', ylabel='Suma €', c='r', lw=3)
y2.plot(c='g', lw=3, figsize=(12,5))
z1.plot(c='r', lw=3, linestyle='-.')
z2.plot(c='g', lw=3, linestyle='-.')
<AxesSubplot:title={'center':'Pajamos ir parduotų prekių kiekis per mėnesį '}, xlabel='Mėnuo', ylabel='Suma €'>
y1=pardavimai[pardavimai['Metai']=='2020'].groupby( 'Savaitės_diena')['Suma'].sum()
y2=pardavimai[pardavimai['Metai']=='2021'].groupby( 'Savaitės_diena')['Suma'].sum()
y1.plot(title='Pajamos pagal savaitės dieną', ylabel='Suma €', c='r', lw=3)
y2.plot(c='g', lw=3, figsize=(12,3))
<AxesSubplot:title={'center':'Pajamos pagal savaitės dieną'}, xlabel='Savaitės_diena', ylabel='Suma €'>
y1=pardavimai[pardavimai['Metai']=='2020'].groupby( 'Savaitės_diena')['Kiekis'].sum()
y2=pardavimai[pardavimai['Metai']=='2021'].groupby( 'Savaitės_diena')['Kiekis'].sum()
y1.plot(title='Parduotų prekių kiekis pagal savaitės dieną', ylabel='Suma €', c='r', lw=3)
y2.plot(c='g', lw=3, figsize=(12,3))
<AxesSubplot:title={'center':'Parduotų prekių kiekis pagal savaitės dieną'}, xlabel='Savaitės_diena', ylabel='Suma €'>
pardavimai.groupby('Metai')['Pelnas'].sum()
Metai 2020 539786.12 2021 625070.31 Name: Pelnas, dtype: float64
pardavimai.groupby(['Metai','Ketvirtis'])['Pelnas'].sum()
Metai Ketvirtis 2020 2020Q1 143868.78 2020Q2 136531.68 2020Q3 143664.77 2020Q4 115720.89 2021 2021Q1 151866.69 2021Q2 190735.86 2021Q3 155352.33 2021Q4 127115.43 Name: Pelnas, dtype: float64
plt.subplot(2,2,1)
plt.title('1Q')
x1=pardavimai[pardavimai['Ketvirtis']=='2020Q1'].groupby( 'Mėnuo')['Pelnas'].sum()
y1=pardavimai[pardavimai['Ketvirtis']=='2021Q1'].groupby( 'Mėnuo')['Pelnas'].sum()
plt.plot(x1, c='r')
plt.plot(y1, c='g')
plt.subplot(2,2,2)
plt.title('2Q')
x2=pardavimai[pardavimai['Ketvirtis']=='2020Q2'].groupby( 'Mėnuo')['Pelnas'].sum()
y2=pardavimai[pardavimai['Ketvirtis']=='2021Q2'].groupby( 'Mėnuo')['Pelnas'].sum()
plt.plot(x2, c='r')
plt.plot(y2, c='g')
plt.subplot(2,2,3)
plt.title('3Q')
x3=pardavimai[pardavimai['Ketvirtis']=='2020Q3'].groupby( 'Mėnuo')['Pelnas'].sum()
y3=pardavimai[pardavimai['Ketvirtis']=='2021Q3'].groupby( 'Mėnuo')['Pelnas'].sum()
plt.plot(x3, c='r')
plt.plot(y3, c='g')
plt.subplot(2,2,4)
plt.title('4Q')
x4=pardavimai[pardavimai['Ketvirtis']=='2020Q4'].groupby( 'Mėnuo')['Pelnas'].sum()
y4=pardavimai[pardavimai['Ketvirtis']=='2021Q4'].groupby( 'Mėnuo')['Pelnas'].sum()
plt.plot(x4, c='r')
plt.plot(y4,c='g')
plt.tight_layout()
pardavimai.plot(x='Suma', y='Pelnas', kind='scatter', c='y')
<AxesSubplot:xlabel='Suma', ylabel='Pelnas'>
sns.boxplot(x='Ketvirtis',y='Pelningumas', data=pardavimai, hue='Metai')
<AxesSubplot:xlabel='Ketvirtis', ylabel='Pelningumas'>
prekes_ = pardavimai.groupby('Prekės_pavadinimas')[['Kiekis','Suma', 'Pelnas']].agg('sum').sort_values(by=['Kiekis'], ascending=False)
prekes_['Pelningumas']=(prekes_['Pelnas']/prekes_['Suma']).round(2)
pd.DataFrame (prekes_).head(10)
Kiekis | Suma | Pelnas | Pelningumas | |
---|---|---|---|---|
Prekės_pavadinimas | ||||
REC. PLASTIC BAG MEDIUM (500) | 14515 | 219.83 | -70.47 | -0.32 |
CORE SS POLY JERSEY | 7160 | 55625.04 | 20926.60 | 0.38 |
CORE POLY SHORTS | 5688 | 43724.80 | 18100.49 | 0.41 |
Estafečių kūgis | 5060 | 1018.35 | 452.75 | 0.44 |
ELEMENT FOOTBALL SOCK | 4844 | 13869.28 | 5703.24 | 0.41 |
HMLGO COTTON PANT | 4396 | 61620.50 | 6757.63 | 0.11 |
CORE POLY JACKET | 3468 | 57502.19 | 24160.34 | 0.42 |
CORE POLY PANT | 3460 | 56653.84 | 24122.90 | 0.43 |
MEDALIS | 3164 | 2392.56 | 1063.68 | 0.44 |
CORE SPRAY JACKET | 2630 | 58346.81 | 22627.18 | 0.39 |
sns.scatterplot(data=prekes_, x='Kiekis', y='Pelnas')
<AxesSubplot:xlabel='Kiekis', ylabel='Pelnas'>
prekes_.sort_values(by=['Pelnas'], ascending=False).head(10)
Kiekis | Suma | Pelnas | Pelningumas | |
---|---|---|---|---|
Prekės_pavadinimas | ||||
CORE POLY JACKET | 3468 | 57502.19 | 24160.34 | 0.42 |
CORE POLY PANT | 3460 | 56653.84 | 24122.90 | 0.43 |
hmlTROPPER TAPERED PANTS | 2105 | 50971.34 | 23297.43 | 0.46 |
CORE SPRAY JACKET | 2630 | 58346.81 | 22627.18 | 0.39 |
CORE SS POLY JERSEY | 7160 | 55625.04 | 20926.60 | 0.38 |
CORE POLY SHORTS | 5688 | 43724.80 | 18100.49 | 0.41 |
HMLGUY PANTS | 1821 | 40977.40 | 13645.45 | 0.33 |
HMLGO COTTON ZIP HOODIE | 1581 | 33321.74 | 13371.35 | 0.40 |
hmlTROPPER ZIP HOODIE | 893 | 27104.23 | 11758.27 | 0.43 |
hmlISAM ZIP HOODIE | 862 | 22485.54 | 9567.43 | 0.43 |
prekes_.sort_values(by=['Pelningumas'], ascending=False).head(10)
Kiekis | Suma | Pelnas | Pelningumas | |
---|---|---|---|---|
Prekės_pavadinimas | ||||
SHOPPING BAG 2016 | 18 | 862.81 | 858.85 | 1.00 |
Krepšys su ratukais | 25 | 1198.35 | 1192.85 | 1.00 |
Kelioniniai krepšiai | 40 | 1917.36 | 1908.56 | 1.00 |
Kelioninis krepšys | 92 | 3571.91 | 3551.67 | 0.99 |
Pasipriešinimo diržas | 9 | 315.00 | 310.32 | 0.99 |
krepšys kelioninis | 8 | 200.00 | 198.24 | 0.99 |
kaklo mova | 40 | 160.00 | 154.40 | 0.97 |
Paradiniai šortai | 122 | 2621.49 | 2550.73 | 0.97 |
Apatiniai marškinėliai | 212 | 2842.97 | 2713.21 | 0.95 |
BARJERAS J-G 79/6 | 11 | 181.82 | 170.38 | 0.94 |
prekes_[prekes_['Pelningumas']>-2].plot.scatter(x='Pelningumas', y='Pelnas', figsize=(12,3), c='y')
<AxesSubplot:xlabel='Pelningumas', ylabel='Pelnas'>
a=pd.DataFrame(pardavimai.groupby(['Dydis','Metai'])['Kiekis'].sum()).reset_index().sort_values(by=['Kiekis'], ascending=False)
sns.barplot(x='Dydis', y='Kiekis', data=a, hue='Metai', palette='hls')
<AxesSubplot:xlabel='Dydis', ylabel='Kiekis'>
padaliniai_ = pardavimai.groupby('Padalinio_pavadinimas')[['Kiekis','Suma', 'Pelnas']].agg('sum').sort_values(by=['Kiekis'], ascending=False)
padaliniai_['Pelningumas']=(padaliniai_['Pelnas']/padaliniai_['Suma']).round(2)
pd.DataFrame (padaliniai_).head(12)
Kiekis | Suma | Pelnas | Pelningumas | |
---|---|---|---|---|
Padalinio_pavadinimas | ||||
Sandelys | 111215 | 1820251.29 | 778746.13 | 0.43 |
Rezervacija | 52003 | 535091.24 | 202918.10 | 0.38 |
Domus infinitum | 24420 | 224465.10 | 15740.04 | 0.07 |
Domus infinitum Palanga | 21371 | 183004.02 | 12522.03 | 0.07 |
DI Siaure | 20215 | 236410.03 | 5886.36 | 0.02 |
Vitaga ir KO (baze) | 13347 | 253831.91 | 86788.41 | 0.34 |
Akropolis Kaunas | 10029 | 83467.89 | 6568.97 | 0.08 |
Panevezys | 3587 | 61093.22 | 16929.99 | 0.28 |
Vilnius Akropolis | 3405 | 30607.88 | 2000.77 | 0.07 |
DOEYS | 3007 | 35895.39 | 1916.01 | 0.05 |
Vilnius Outlet | 2233 | 25243.26 | 2009.24 | 0.08 |
Siauliu parduotuve MB"Sportspotas""" | 2103 | 26044.53 | 7907.73 | 0.30 |
klientai_ = pardavimai.groupby('Kliento_id')[['Kiekis','Suma', 'Pelnas']].agg('sum').sort_values(by=['Kiekis'], ascending=False).head(10)
klientai_['Pelningumas']=(klientai_['Pelnas']/klientai_['Suma']).round(2)
pd.DataFrame (klientai_).reset_index()
Kliento_id | Kiekis | Suma | Pelnas | Pelningumas | |
---|---|---|---|---|---|
0 | 304887467 | 92393 | 879991.67 | 43815.38 | 0.05 |
1 | 01 | 39254 | 742277.63 | 371748.85 | 0.50 |
2 | 302559863 | 36961 | 419528.79 | 95807.71 | 0.23 |
3 | 190729624 | 31329 | 460201.24 | 229952.77 | 0.50 |
4 | 135931479 | 13528 | 256747.61 | 87568.80 | 0.34 |
5 | 02 | 12126 | 254656.92 | 119634.97 | 0.47 |
6 | 304590537 | 10828 | 57233.20 | 9106.59 | 0.16 |
7 | 304985908 | 9033 | 141017.78 | 50760.67 | 0.36 |
8 | 302502951 | 5473 | 82885.17 | 24122.79 | 0.29 |
9 | 305208983 | 4562 | 55452.26 | 18219.23 | 0.33 |
kl_=pardavimai.groupby(['Kliento_id', 'Metai'])['Suma'].sum().sort_values(ascending=False)
kl_=pd.DataFrame (kl_).reset_index()
kl_=kl_.pivot('Kliento_id', 'Metai', 'Suma')
kl_=kl_.sort_values(by='2021', ascending=False).head(10)
kl_1=pardavimai.groupby(['Kliento_id', 'Metai'])['Kiekis'].sum().sort_values(ascending=False)
kl_1=pd.DataFrame (kl_1).reset_index()
kl_1=kl_1.pivot('Kliento_id', 'Metai', 'Kiekis')
kl_1=kl_1.sort_values(by='2021', ascending=False).head(10)
kl_['2020'].plot(title='Pajamos pagal klientus 20-21 metais', ylabel='Suma €', c='r', lw=3)
kl_['2021'].plot(c='g', lw=3, figsize=(12,2))
<AxesSubplot:title={'center':'Pajamos pagal klientus 20-21 metais'}, xlabel='Kliento_id', ylabel='Suma €'>
kl_1['2020'].plot(title='Parduotos prekės pagal klientus 20-21 metais', ylabel='Kiekis vnt.', linestyle='-.', c='r', lw=3)
kl_1['2021'].plot(c='g', lw=3, linestyle='-.', figsize=(12,2))
<AxesSubplot:title={'center':'Parduotos prekės pagal klientus 20-21 metais'}, xlabel='Kliento_id', ylabel='Kiekis vnt.'>
Parama.groupby('Metai')['Kiekis'].sum()
Metai 2020 7938 2021 17253 Name: Kiekis, dtype: int64
Parama.groupby('Metai')['Suma'].sum().round(2)
Metai 2020 62707.95 2021 147829.97 Name: Suma, dtype: float64
Parama.groupby('Prekės_pavadinimas')['Kiekis'].sum().sort_values(ascending=False).head(10)
Prekės_pavadinimas CORE SS POLY JERSEY 956 CORE POLY SHORTS 944 Marškinėliai 863 Marškinėliai varžybiniai 660 ELEMENT FOOTBALL SOCK 632 Šortai 580 MEDALIS 455 TECH MOVE JERSEY S/S 441 HMLGUY PANTS 430 STORM LIGHT FB 418 Name: Kiekis, dtype: int64
pardavimai['Kaina']=pardavimai['Suma']/pardavimai['Kiekis']
from sklearn.model_selection import train_test_split
pardavimaiR=pardavimai[pardavimai['Prekės_savikaina']<=200]
model=LinearRegression()
X=pd.DataFrame(pardavimaiR['Prekės_savikaina'])
y=pardavimaiR['Kaina']
model.fit(X,y)
model.predict([[8]])
array([12.74477891])
r_squared=model.score(X,y)
r_squared
0.5270614832455793
prediction=model.predict(X)
pardavimaiR['prediction']=prediction.round(2)
C:\Users\vofka\AppData\Local\Temp/ipykernel_309940/3336903579.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy pardavimaiR['prediction']=prediction.round(2)
plt.scatter(X,y)
plt.plot(X,prediction, c='r', lw=3)
[<matplotlib.lines.Line2D at 0x1c09e479820>]
pardavimai.to_csv('C:\\...\\Pardavimai_galutinis.csv')