Python ծրագիր՝ ցուցակը CSV-ի փոխակերպելու համար


Բառարանում բանալիները պետք է լինեն եզակի և անփոփոխ, մինչդեռ արժեքները կարող են լինել ցանկացած տեսակի և կարող են ունենալ արժեքների ցանկ: Ցուցակների բառարանի դեպքում յուրաքանչյուր բանալի մատնանշում է մի ցուցակ, որը կարող է պարունակել բազմաթիվ տարրեր:

Ահա ցուցակների բառարանի օրինակ −

data = {'numbers':[1, 2, 3, 4, 5, 6],
'states':['UP', 'Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu'],
'cities':['Agra', 'Chennai', 'Hyderabad', 'Surat', 'Lucknow', 'Coimbatore']})

Վերոնշյալ բառարանում յուրաքանչյուր ստեղն արտացոլված է արժեքների ցանկի հետ: Օրինակ՝ «պետությունների» բանալին քարտեզագրվում է ցանկի վրա ['UP', 'Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu']:

Մյուս կողմից, CSV (ստորակետերով բաժանված արժեքներ) ֆայլը պարզ տեքստային ֆայլ է, որը պահում է աղյուսակային տվյալները պարզ, ստորակետերով բաժանված ձևաչափով: Ֆայլի յուրաքանչյուր տողը սովորաբար ներկայացնում է տվյալների տող, և յուրաքանչյուր տողի արժեքները բաժանվում են ստորակետերով: Առաջին տողը հաճախ ծառայում է որպես վերնագրի տող, որը պարունակում է սյունակների անունները:

Ահա CSV ֆայլի օրինակ, որը ներկայացնում է նախկինում նշված ցուցակների բառարանի տվյալները −

numbers,states,cities
1,UP,Agra
2,Tamil Nadu,Chennai
3,Telangana,Hyderabad
4,Gujarat,Surat
5,UP,Lucknow
6,Tamil Nadu,Coimbatore

Ցանկերի բառարանը CSV ֆայլի փոխարկելիս ընդհանուր մոտեցումը ներառում է բառարանի ստեղների և արժեքների կրկնությունը՝ դրանք CSV ֆայլում գրելու համար: Կան մի քանի տարբեր մոտեցումներ, որոնք մենք կքննարկենք այս հոդվածում:

Օգտագործելով csv մոդուլը

Python-ում csv մոդուլը տրամադրում է CSV ֆայլի վրա տվյալներ գրելու մի քանի մեթոդներ: Այս մեթոդները csv.writer դասի մի մասն են և թույլ են տալիս մեզ գրել առանձին տողեր կամ տվյալների մի քանի տող CSV ֆայլում:

  • writerow(row) - Այս մեթոդը տվյալների մեկ տող է գրում CSV ֆայլում:

  • writerows( տողեր) - Այս մեթոդը տվյալների մի քանի տող է գրում CSV ֆայլում:

Բացի այդ, մենք կարող ենք օգտագործել zip() ֆունկցիան` շարք առ տող ցուցակների բառարանի արժեքների վրա կրկնելու համար:

Zip() ֆունկցիան վերցնում է մի քանի կրկնվող թվեր (այս դեպքում՝ արժեքների ցուցակները) և վերադարձնում է կրկնող, որը միավորում է տարրերը յուրաքանչյուր կրկնվողից։ Որը կարող է արդյունավետ կերպով տեղափոխել տվյալները սյունակի վրա հիմնված ներկայացումից տողերի վրա հիմնված ներկայացման:

Օրինակ

Ահա մի օրինակ՝ ցուցակների բառարանը CSV ֆայլի փոխակերպելու համար՝ օգտագործելով Python csv մոդուլը և դրա մեթոդները:

import csv

# define the function
def dict_to_csv(dictionary, filename):
    keys = list(dictionary.keys())
    values = list(dictionary.values())

    with open(filename, 'w', newline='') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(keys)
        writer.writerows(zip(*values))

# create a dictionary of lits
data = {'numbers':[1, 2, 3, 4, 5, 6],
        'colors':['red','green', 'yellow', 'blue', 'brown'],
        'fruits':['apples','Avocados', 'Pineapples', 'Blueberries', 'Dates']}

print('Input Dictionary of lits:', data)
print()

# Convert dictionary to CSV
dict_to_csv(data, 'Output\output2.csv')
print('Output:')
print('The converted CSV file is created successfully in our working directory.')

Արդյունք

Input Dictionary of lits: {'numbers': [1, 2, 3, 4, 5, 6], 'colors': ['red', 'green', 'yellow', 'blue', 'brown'], 'fruits': ['apples', 'Avocados', 'Pineapples', 'Blueberries', 'Dates']}

Output:
The converted CSV file is created successfully in our working directory.

Հետևյալ պատկերը ցույց է տալիս փոխարկված csv ֆայլը, որը ստեղծվել է աշխատանքային գրացուցակում:

Օգտագործելով պանդաների գրադարանը

Պանդաների գրադարանը տրամադրում է բազմաթիվ լրացուցիչ գործառույթներ տվյալների մշակման և մանիպուլյացիայի համար, ինչպիսիք են տվյալների զտումը, ագրեգացումը, տեսակավորումը և այլն: Այն աջակցում է CSV ֆայլեր գրել DataFrame-ից՝ օգտագործելով to_csv() ֆունկցիան:

Օրինակ

Այս մոտեցմամբ մենք սկզբում ստեղծում ենք pandas DataFrame-ը ցուցակների բառարանից, այնուհետև մենք կօգտագործենք to_csv() մեթոդը՝ Dataframe-ից CSV ֆայլ ստեղծելու համար:

Տեսնենք պանդաների գրադարանի օգտագործման օրինակ՝ ցուցակի բառարանը CSV ֆայլի փոխարկելու համար:

import pandas as pd

def dict_to_csv(dictionary, filename):
    df = pd.DataFrame(dictionary)
    df.to_csv(filename, index=False)

# create a dictionary of lits
data = {'nums':[1, 2, 3, 4, 5, 6],
   'states':['UP','Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu'],
   'cities':['Agra','Chennai', 'Hyderabad', 'Surat', 'Lucknow', 'Coimbatore']}

print('Input Dictionary of lits:', data)
print()

# Convert dictionary to CSV
dict_to_csv(data, 'Output\output.csv')
print('Output:')
print('The converted CSV file is created successfully in our working directory.')

Արդյունք

Input Dictionary of lits: {'nums': [1, 2, 3, 4, 5, 6], 'states': ['UP', 'Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu'], 'cities': ['Agra', 'Chennai', 'Hyderabad', 'Surat', 'Lucknow', 'Coimbatore']}

Output:
The converted CSV file is created successfully in our working directory.

Հետևյալ պատկերը ցույց է տալիս փոխարկված csv ֆայլը, որը ստեղծվել է աշխատանքային գրացուցակում:

Վերոնշյալ երկու օրինակները ցույց են տալիս Python ծրագրավորման միջոցով ցուցակների բառարանը CSV ֆայլի փոխարկելու տարբեր մոտեցումներ: