Ինչպե՞ս փլուզել բազմաթիվ սյունակներ Python Pandas-ում:


Pandas-ը Python-ում տվյալների մանիպուլյացիայի հանրաճանաչ գրադարան է, որը լայնորեն օգտագործվում է կառուցվածքային տվյալների հետ աշխատելու համար: Տվյալների հետ աշխատելիս ընդհանուր խնդիրներից մեկը դրանք մաքրելն ու վերափոխելն է՝ վերլուծության պատրաստելու համար:

Երբեմն տվյալները կարող են պարունակել մի քանի սյունակներ, որոնք ունեն նմանատիպ տեղեկատվություն կամ կապված են միմյանց հետ: Նման դեպքերում կարող է օգտակար լինել այս սյունակները մեկ սյունակի մեջ հավաքել՝ ավելի հեշտ վերլուծության կամ պատկերացման համար:

Pandas-ը տրամադրում է մի քանի մեթոդներ՝ մի քանի սյունակները մեկ սյունակի մեջ փլուզելու համար: Այս ձեռնարկում մենք մանրամասն կուսումնասիրենք այս մեթոդները և կներկայացնենք օրինակներ՝ ցույց տալու, թե ինչպես օգտագործել դրանք: Այս ձեռնարկի ավարտին դուք ավելի լավ կհասկանաք, թե ինչպես կարելի է փլուզել պանդաների մի քանի սյունակներ և կկարողանաք կիրառել այս տեխնիկան ձեր սեփական տվյալների հավաքածուներում:

Հիմա եկեք խոսենք երկու տարբեր մոտեցումների մասին, որոնցից մենք կարող ենք օգտագործել պանդաների մի քանի սյուներ փլուզելու համար:

Բազմաթիվ սյունակների փլուզում, օգտագործելով melt() մեթոդը պանդաներում

Melt() մեթոդը Pandas-ում հզոր գործիք է լայն տվյալները երկար տվյալների վերածելու համար: Մենք կարող ենք օգտագործել այս մեթոդը մի քանի սյունակներ մեկ սյունակի մեջ փլուզելու համար:

  • Melt() մեթոդն օգտագործելու համար մենք պետք է նշենք այն սյունակները, որոնք ցանկանում ենք պահել որպես նույնացուցիչ փոփոխականներ, և այն սյունակները, որոնք ցանկանում ենք փլուզել մեկ սյունակի մեջ՝ օգտագործելով value_vars պարամետրը:

  • Ստացված DataFrame-ը կունենա նոր սյունակ, որը պարունակում է փլված սյունակների արժեքները, իսկ հին սյունակները կվերածվեն երկու սյունակի՝ մեկը նույնացուցիչ փոփոխականի և մեկը արժեքի փոփոխականի համար:

Ահա մի քանի սյունակներ փլուզելու քայլերը՝ օգտագործելով melt() մեթոդը −

  • Ներմուծեք պանդաների գրադարանը:

  • Բեռնել տվյալների բազան DataFrame-ում:

  • Օգտագործեք melt() մեթոդը DataFrame-ում և նշեք նույնացուցիչ փոփոխականները՝ օգտագործելով id_vars պարամետրը, իսկ սյուները՝ փլուզման համար՝ օգտագործելով value_vars պարամետրը:

  • Անհրաժեշտության դեպքում վերանվանեք սյունակները:

Օրինակ

Հիմա եկեք դիտարկենք նույնի կոդը:


import pandas as pd
from tabulate import tabulate

data = {
   'name': ['Alice', 'Bob', 'Charlie'],
   'age': [25, 30, 35],
   'income_2019': [50000, 60000, 70000],
   'income_2020': [55000, 65000, 75000]}
df = pd.DataFrame(data)
print(tabulate(df, headers='keys', tablefmt='psql'))

print("\n Data Frame After Collapsing Similar Columns")

melted_df = df.melt(
   id_vars=['name', 'age'],
   value_vars=['income_2019', 'income_2020'],
   var_name='year',
   value_name='income')

print(tabulate(melted_df, headers = 'keys', tablefmt = 'psql'))

Արդյունք

Այս կոդը գործարկելիս դուք կստանաք հետևյալ ելքը −

Դիտեք սկզբնական աղյուսակը և այն, թե ինչպես է այն տեսքը այն բանից հետո, երբ մենք փլուզեցինք և միավորեցինք դրա նմանատիպ սյունակները:

Բազմաթիվ սյունակների փլուզում, օգտագործելով stack() մեթոդը Pandas-ում

Stack() մեթոդը Pandas-ում մի քանի սյունակներ մեկ սյունակի մեջ փլուզելու ևս մեկ միջոց է: Մենք կարող ենք օգտագործել այս մեթոդը, երբ փլուզվող սյունակներն ունեն հիերարխիկ ինդեքս:

  • Stack() մեթոդն օգտագործելու համար մենք նախ պետք է ստեղծենք MultiIndex DataFrame-ում՝ օգտագործելով set_index() մեթոդը:

  • Այնուհետև մենք կարող ենք օգտագործել stack() մեթոդը՝ սյունակները փլուզելու և Series օբյեկտ ստեղծելու համար:

Ահա մի քանի սյունակներ փլուզելու քայլերը՝ օգտագործելով stack() մեթոդը −

  • Ներմուծեք պանդաների գրադարանը:

  • Բեռնել տվյալների բազան DataFrame-ում:

  • Օգտագործեք set_index() մեթոդը՝ DataFrame-ում MultiIndex ստեղծելու համար՝ օգտագործելով այն սյունակները, որոնք մենք ցանկանում ենք պահել որպես նույնացուցիչ փոփոխականներ:

  • Օգտագործեք stack() մեթոդը՝ սյունակները փլուզելու համար:

  • Ստացված Series օբյեկտը հետ դարձրեք DataFrame՝ օգտագործելով reset_index() մեթոդը:

  • Անհրաժեշտության դեպքում վերանվանեք սյունակները:

Օրինակ

Մտածեք ստորև ներկայացված կոդը:


import pandas as pd
from tabulate import tabulate

data = {
   'name': ['Alice', 'Bob', 'Charlie'],
   'age': [25, 30, 35],
   'income': [(50000, 55000), (60000, 65000), (70000, 75000)]
}
df = pd.DataFrame(data)
print(tabulate(df, headers='keys', tablefmt='fancy_grid'))

df.set_index(['name', 'age'], inplace=True)
stacked_df = df['income'].apply(pd.Series)
print(tabulate(stacked_df, headers='keys', tablefmt='fancy_grid'))

Արդյունք

Այս կոդը գործարկելիս դուք կստանաք հետևյալ ելքը −

Դիտեք, թե ինչպես է Pandas տվյալների շրջանակը տեսքը այն բանից հետո, երբ մենք փլուզեցինք և միավորեցինք դրա որոշ սյունակներ՝ օգտագործելով stack() մեթոդը:

Եզրակացություն

Եզրափակելով, պանդաներում մի քանի սյուների փլուզումը կարող է իրականացվել տարբեր մեթոդների միջոցով, ինչպիսիք են melt() և stack() մեթոդները: Այս երկու մեթոդներն էլ հզոր գործիքներ են լայն տվյալները երկար տվյալների վերածելու համար, և դրանք կարող են օգտագործվել բազմաթիվ սյունակներ մեկ սյունակի մեջ փլուզելու համար: Մեթոդի ընտրությունը կախված է կոնկրետ տվյալների բազայից և սյունակների կառուցվածքից, որոնք պետք է փլուզվեն: Օգտագործելով այս մեթոդները՝ մենք կարող ենք ստեղծել ավելի կազմակերպված և արդյունավետ տվյալների բազա, որը շատ կարևոր է տվյալների վերլուծության և մեքենայական ուսուցման հավելվածների համար:

Pandas-ն առաջարկում է մի շարք հզոր գործիքներ տվյալների մանիպուլյացիայի համար, և այդ գործիքների յուրացումը կարող է մեծապես բարձրացնել ձեր տվյալները վերլուծելու և մշակելու ունակությունը: