Ինչպե՞ս օգտագործել Pandas cut() և qcut():
Pandas-ը Python գրադարան է, որն օգտագործվում է տվյալների մշակման և կառուցվածքային տվյալների վերլուծության համար: Պանդաների cut() և qcut() մեթոդներն օգտագործվում են թվային տվյալներից դասակարգային փոփոխականներ ստեղծելու համար։ cut() և qcut() մեթոդները թվային տվյալները բաժանում են համապատասխանաբար առանձին ինտերվալների կամ քվանտիլների և յուրաքանչյուր ինտերվալին կամ քվանտին հատկացնում են պիտակներ: Այս հոդվածում մենք կհասկանանք cut() և qcut() մեթոդների ֆունկցիոնալությունը տարբեր օրինակների օգնությամբ։
The cut() ֆունկցիան
cut()-ը շարունակական փոփոխականը բաժանում է առանձին աղբարկղերի կամ միջակայքերի՝ հիմնված սահմանված չափանիշների վրա: Այն ստեղծում է տվյալների խմբեր կամ կատեգորիաներ՝ հիմնվելով մուտքային տվյալների մեջ առկա արժեքների շարքի վրա:
Շարահյուսություն
pandas.cut(x, bins, labels=None, right=True, include_lowest=False, ...)
Վերոնշյալ շարահյուսության մեջ օգտագործվող պարամետրերն են.
x: Մուտքային տվյալները, որոնք կարող են լինել Pandas Series կամ NumPy զանգված:
bins. Սա կարող է լինել ամբողջական արժեք, որը սահմանում է ստեղծելու համար նախատեսված հավասար լայնությամբ աղբարկղերի քանակը, կամ սկալային արժեքների հաջորդականություն, որը սահմանում է աղբի եզրերը: Եթե տրամադրվի ամբողջ թիվ, ապա x-ի արժեքների տիրույթը կբաժանվի այդքան հավասար լայնությամբ աղբարկղերի:
-
պիտակներ (ըստ ցանկության). Պիտակների զանգվածի նման օբյեկտ՝ յուրաքանչյուր աղբարկղին վերագրելու համար: Եթե տրամադրված չէ, ապա պիտակները կլինեն ամբողջ թվեր, որոնք ցույց են տալիս աղբարկղի ինդեքսը:
աջ (ըստ ցանկության). Բուլյան արժեք, որը ցույց է տալիս, թե արդյոք ինտերվալները պետք է լինեն աջ-փակ (ներառում է աղբամանի աջ եզրը) կամ ձախ-փակ (ներառում է ձախ տուփի եզրը): Լռելյայն, այն սահմանված է True:
include_lowest (ըստ ցանկության). Բուլյան արժեք, որը ցույց է տալիս, թե արդյոք ներառել միջակայքի ամենացածր արժեքը: Լռելյայն, այն սահմանված է False:
Օրինակ 1. Հավասար լայնությամբ աղբարկղեր
Ստորև բերված օրինակում մենք ունենք թվային տվյալների ցանկ: Մենք նշում ենք աղբարկղերը որպես 3՝ նշելով, որ ցանկանում ենք տվյալները բաժանել երեք հավասար լայնությամբ աղբարկղերի։ Արդյունքը ցույց է տալիս այն միջակայքերը, որոնցում ընկնում է յուրաքանչյուր արժեք՝ համապատասխան կատեգորիայի հետ միասին:
import pandas as pd
# Example 1: Equal-width bins
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
bins = 3
categories = pd.cut(data, bins)
print(categories)
Արդյունք
[(9.91, 40.0], (9.91, 40.0], (9.91, 40.0], (9.91, 40.0], (40.0, 70.0], (40.0, 70.0], (40.0, 70.0], (70.0, 100.0], (70.0, 100.0], (70.0, 100.0]]
Categories (3, interval[float64, right]): [(9.91, 40.0] < (40.0, 70.0] < (70.0, 100.0]]
Օրինակ 2. Պատվերով աղբամանի եզրեր և պիտակներ
Ստորև բերված օրինակում մենք սահմանում ենք հատուկ աղբարկղի եզրեր [0, 30, 60, 100] և համապատասխան պիտակներ ['Low', 'Medium', 'High']: cut() ֆունկցիան տվյալների յուրաքանչյուր արժեք վերագրում է համապատասխան կատեգորիայի՝ հիմնված տրամադրված աղբարկղերի և պիտակների վրա:
# Example 2: Custom bin edges and labels
import pandas as pd
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
bins = [0, 30, 60, 100]
labels = ['Low', 'Medium', 'High']
categories = pd.cut(data, bins, labels=labels)
print(categories)
Արդյունք
['Low', 'Low', 'Low', 'Medium', 'Medium', 'Medium', 'High', 'High', 'High', 'High']
Categories (3, object): ['Low' < 'Medium' < 'High']
qcut() ֆունկցիան
qcut() ֆունկցիան բաժանում է տվյալները՝ հիմնվելով քվանտիլների կամ տոկոսների վրա, ի տարբերություն cut() ֆունկցիայի, որը տվյալները բաժանում է հավասար լայնության միջակայքերի: Յուրաքանչյուր աղբարկղում կան հավասար թվով տվյալների կետեր, ինչը այն օգտակար է հավասարաչափ բաշխված խմբեր ստեղծելու համար:
Շարահյուսություն
pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')
Շարահյուսության մեջ օգտագործվող պարամետրերն են.
x: Մուտքային տվյալները, որոնք կարող են լինել Pandas Series կամ NumPy զանգված:
q. Ամբողջական արժեք, որը նշում է ստեղծվելիք քվանտիլների թիվը կամ քվանտիլների հաջորդականությունը (արժեքները 0-ից 1-ի միջև), որոնք սահմանում են անջատման կետերը:
պիտակներ (ըստ ցանկության). Պիտակների զանգվածի նման օբյեկտ՝ յուրաքանչյուր աղբարկղին վերագրելու համար: Եթե տրամադրված չէ, ապա պիտակները կլինեն ամբողջ թվեր, որոնք ցույց են տալիս աղբարկղի ինդեքսը:
-
retbins (ըստ ցանկության). Բուլյան արժեք, որը ցույց է տալիս, թե արդյոք պետք է վերադարձնել աղբարկղի եզրերը կատեգորիաների հետ միասին: Լռելյայն, այն սահմանված է False:
ճշգրտություն (ըստ ցանկության). Ամբողջ թիվ, որը նշում է քվանտային արժեքների ճշգրտությունը: Լռելյայն սահմանվել է 3:
կրկնօրինակներ (ըստ ցանկության). Ինչպես կարգավորել կրկնօրինակ արժեքները: Լռելյայնորեն այն սահմանված է «բարձրացնել», ինչը սխալ է առաջացնում:
Օրինակ 1. Քվանտիլների հավասար քանակ
Ստորև բերված օրինակում մենք ունենք նույն թվային տվյալները, ինչ նախկինում: Քվանտիլները նշելով որպես 3, մենք տվյալները բաժանում ենք երեք հավասար չափերի քվանտիլների։ Արդյունքը ցույց է տալիս այն ընդմիջումները, որոնցում ընկնում է յուրաքանչյուր արժեք և համապատասխան կատեգորիան:
import pandas as pd
# Example 1: Equal number of quantiles
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
quantiles = 3
categories = pd.qcut(data, quantiles)
print(categories)
Արդյունք
[(9.999, 40.0], (9.999, 40.0], (9.999, 40.0], (9.999, 40.0], (40.0, 70.0], (40.0, 70.0], (40.0, 70.0], (70.0, 100.0], (70.0, 100.0], (70.0, 100.0]]
Categories (3, interval[float64, right]): [(9.999, 40.0] < (40.0, 70.0] < (70.0, 100.0]]
Օրինակ 2. Հատուկ քանակություններ և պիտակներ
Ստորև բերված օրինակում մենք սահմանում ենք հատուկ քվենտիլներ [0, 0.3, 0.6, 1] և համապատասխան պիտակներ ['Low', 'Medium', 'High']: Qcut() ֆունկցիան յուրաքանչյուր արժեք վերագրում է համապատասխան կատեգորիայի՝ հիմնվելով տրամադրված քվանտիլների և պիտակների վրա:
import pandas as pd
# Example 2: Custom quantiles and labels
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
quantiles = [0, 0.3, 0.6, 1]
labels = ['Low', 'Medium', 'High']
categories = pd.qcut(data, quantiles, labels=labels)
print(categories)
Արդյունք
['Low', 'Low', 'Low', 'Medium', 'Medium', 'Medium', 'High', 'High', 'High', 'High']
Categories (3, object): ['Low' < 'Medium' < 'High']
Եզրակացություն
Այս հոդվածում մենք քննարկեցինք, թե ինչպես կարող ենք օգտագործել pandas cut() և qcut() մեթոդները թվային տվյալներից դասակարգային փոփոխականներ ստեղծելու համար: cut() ֆունկցիան տվյալները բաժանում է դիսկրետ ինտերվալների՝ հիմնված տվյալ պայմանների վրա, մինչդեռ qcut() մեթոդը տվյալները բաժանում է քվանտիլների կամ տոկոսների։ Երկու գործառույթն էլ կարող է պիտակներ վերագրել յուրաքանչյուր ինտերվալի կամ քվանտիլի, որն օգնում է թվային տվյալները վերափոխել դասակարգային տվյալների: