# அறிமுகம்: தரவுத்தள பதிவேற்றங்கள் முதல் API பதில்கள், விரிதாள் பதிவிறக்கங்கள் ஆகியவைவரை தரவு பணிப்பாய்வுகளில் CSV கோப்புகள் அங்கிங்கெனா தவாறு எல்லா இடங்களிலும் நீக்கமற நிறைந்துள்ளன. இதற்காகpandas கள் சிறப்பாக செயல்படும் அதே வேளையில், சில நேரங்களில் pandas களை நிறுவுகை செய்திடாமல் பைத்தானைப் பயன்படுத்தி குறிமுறைவரிகள் செய்யக்கூடிய விரைவான தீர்வுகள்கூட நமக்குத் தேவைப்படக் கூடும்.அவ்வாறான நிலையில் பைத்தானின் உள்ளமைக்கப்பட்ட csvஇன் தகவமைவு, பட்டியலின் புரிதல்கள் ,உருவாக்கியின் வெளிப்பாடுகளுடன் இணைந்து, குறிமுறைவரிகளின் ஒற்றை வரியில் மிகவும் பொதுவான CSVஇன் பணிகளைக் கையாள முடியும். விரைவான தரவு ஆய்வு, ETLஇல் பிழைத்திருத்தம் அல்லது வெளிப்புற நூலகங்கள் கிடைக்காத கட்டுப்படுத்தப்பட்ட சூழல்களில் பணிபுரியும் போது இந்த ஒற்றைவரி கட்டளைகள் சரியானவையும், பொருத்தமானவை களுமாகும். அவ்வாறான பைத்தானின் ஒற்றைவரிகட்டளைகள் பின்வருமாறு:
# 1. நெடுவரிசைகூடுதலைக் கண்டறிதல்-அனைத்து கிடைவரிசைகளிலும் உள்ள எந்தவொரு நெடுவரிசையின் மொத்தத்தையும் கணக்கிடுவதற்கான கட்டளைவரி பின்வருமாறு:
print(f”Total: ${sum(float(r[3]) for r in import(‘csv’).reader(open(path)) if r[0] != ‘transaction_id’):,.2f}”)
இங்கே, path என்பது மாதிரி CSV கோப்பிற்கான பாதையை வைத்திருக்கும் ஒரு மாறி ஆகும். இந்த எடுத்துக்காட்டில், Google Colab இல், இது path = “/content/data.csv” என்பதாகும்.
வெளியீடு:Total: $1,814,359.75 ஆகும்
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்:.இங்கே, import(‘csv’) எனும் உள்ளமைக்கப்பட்ட CSV தகவமைவின் உள்ளகவரியை பதிவிறக்கம் செய்கிறது. உருவாக்கியின் வெளிப்பாடுஆனது தலைப்பு கிடைவரிசையைத் தவிர்த்து, நெடுவரிசை மதிப்புகளை மிதவைகளாக மாற்றுகிறது, பின்னர்அவற்றைத் தொகுக்கிறது தொடர்ந்துநாணயக் குறியீட்டுடன் வடிவமைக்கிறது. நெடுவரிசை யின் சுட்டுவரிசை (3) , தலைப்பு சரிபார்ப்பை தேவைக்கேற்ப சரிசெய் திடுகின்றது.
# 2. அதிகபட்சமான குழுவாக்கிடுதல் – தரவுத்தொகுப்பில் எந்தக் குழு அதிக மொத்த மதிப்பைக் கொண்டுள்ளது என்பதைக் கண்டறிந்திடுவதற்கான கட்டளைவரி பின்வருமாறு:
print(max({r[5]: sum(float(row[3]) for row in import(‘csv’).reader(open(path)) if row[5] == r[5] and row[0] != ‘transaction_id’) for r in import(‘csv’).reader(open(path)) if r[0] != ‘transaction_id’}.items(), key=lambda x: x[1]))
வெளியீடு: (‘Mike Rodriguez’, 502252.0)ஆகும்
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்: இதுநெடுவரிசை 5 ஆல் தொகுக்கப்படுகிறது, பின்னர்ஒவ்வொரு குழுவிற்கும் நெடுவரிசை 3இன் மதிப்புகளைச் சுருக்குகிறது. தொடர்ந்துஒரு pass எனும்குழு விசைகளைச் சேகரிக்கிறது ,அதன்பின்னர்ஒரு வினாடி திரட்டுதலைச் செய்கிறது. lambda உடன் கூடிய max()இன் அதிகபட்ச மொத்தத்தைக் கண்டறிகிறது.இறுதியாகவெவ்வேறு குழு-வாரியாக செயலிகளுக்கு நெடுவரிசை சுட்டிகளை சரிசெய்திடுகின்றது.
# 3. கிடைவரிசைகளின் துணைக்குழுவை வடிகட்டி காண்பித்தல்-வடிவமைக் கப்பட்ட வெளியீட்டுடன் ஒரு குறிப்பிட்ட நிபந்தனையுடன் பொருந்தக்கூடிய கிடை வரிசைகளை மட்டும் காண்பிப்பதற்கான கட்டளைவரி பின்வருமாறு:
print(“\n”.join(f”{r[1]}: ${float(r[3]):,.2f}” for r in import(‘csv’).reader(open(path)) if r[7] == ‘Enterprise’ and r[0] != ‘transaction_id’))
வெளியீடு: Acme Corp: $45,000.00
Gamma Solutions: $78,900.00
Zeta Systems: $156,000.00
Iota Industries: $67,500.25
Kappa LLC: $91,200.75
Nu Technologies: $76,800.25
Omicron LLC: $128,900.00
Sigma Corp: $89,700.75
Phi Corp: $176,500.25
Omega Technologies: $134,600.50
Alpha Solutions: $71,200.25
Matrix Systems: $105,600.25
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்:உருவாக்கியின் வெளிப்பாடுஆனது, நெடுவரிசை 7இல் நிறுவனத்திற்கு சமமான கிடைவரிசைகளை வடிகட்டுகிறது, பின்னர் நெடுவரிசைகள் 1 , 3 ஆகியவற்றினை வடிவமைக்கிறது. இறுதியாக”\n”.join(…)என்பதைப் பயன்படுத்துவது எதுவும் இல்லாத மதிப்புகளின் பட்டியலை அச்சிடுவதைத் தவிர்க்கிறது.
# 4. கூட்டுத்தொகையின் விநியோகித்தல்-குழுவாக்கும் நெடுவரிசையில் ஒவ்வொரு தனித்துவமான மதிப்புக்கும் மொத்தங்களைப் பெறுதலிற்கான கட்டளைவரி பின்வருமாறு:
print({g: f”${sum(float(row[3]) for row in import(‘csv’).reader(open(path)) if row[6] == g and row[0] != ‘transaction_id’):,.2f}” for g in set(row[6] for row in import(‘csv’).reader(open(path)) if row[0] != ‘transaction_id’)})
வெளியீடு: {‘Asia Pacific’: ‘$326,551.75’, ‘Europe’: ‘$502,252.00’, ‘North America’: ‘$985,556.00’}
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்: முதலில் ஒரு தொகுப்பினைப் பயன்படுத்தி நெடுவரிசை 6 இலிருந்து தனித்துவமான மதிப்புகளைப் பிரித்தெடுக்கிறது, பின்னர் ஒவ்வொரு குழுவிற்கும் நெடுவரிசை 3 இன் கூட்டுத்தொகையைக் கணக்கிடுகிறது. தொடர்ந்துஉருவாக்கியின் வெளிப்பாடுகள் காரணமாக இது அதிகநினைவக திறன் கொண்டதாக ஆக்குகின்றது. இறுதியாக நெடு வரிசை சுட்டிகளை வெவ்வேறு புலங்களின் மூலம் குழுவாக மாற்றிடுகின்றது.
# 5. வரிசைப்படுத்தலுடன் கூடிய வரம்பினை வடிகட்டிடுதல்-ஒரு குறிப்பிட்ட எண்ணின் வரம்பிற்கு மேல் உள்ள அனைத்து பதிவுகளையும் கண்டுபிடித்து தரவரிசைப்படுத்திடுதலிற்கான கட்டளைவரி பின்வருமாறு:
print([(n, f”${v:,.2f}”) for n, v in sorted([(r[1], float(r[3])) for r in list(import(‘csv’).reader(open(path)))[1:] if float(r[3]) > 100000], key=lambda x: x[1], reverse=True)])
வெளியீடு: [(‘Phi Corp’, ‘$176,500.25’), (‘Zeta Systems’, ‘$156,000.00’), (‘Omega Technologies’, ‘$134,600.50’), (‘Omicron LLC’, ‘$128,900.00’), (‘Matrix Systems’, ‘$105,600.25’)]
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்: இது நெடுவரிசை 3 இல் 100000 ஐ மீறும் கிடைவரிசைகளை வடிகட்டுகிறது, பின்னர்உருவாக்குகிறது பெயர் , எண் மதிப்பின் tuples களை எண் மதிப்பின்படி வரிசைப்படுத்திடுகின்றது, தொடர்ந்து மதிப்புகளை நாணயமாகக் காட்சிப்படுத்த வடிவமைக்கவும். தேவைக்கேற்ப வரம்பினையும் நெடுவரிசைகளையும் சரிசெய்திடுகின்றது.
# 6. தனித்துவமான மதிப்புகளை கணக்கிடுதல்-எந்தவொரு நெடுவரிசையிலும் எத்தனை தனித்துவமான மதிப்புகள் உள்ளன என்பதை விரைவாகத் தீர்மானித்திடுவதற்கான கட்டளைவரி பின்வருமாறு:
print(len(set(r[2] for r in import(‘csv’).reader(open(path)) if r[0] != ‘transaction_id’)))
வெளியீடு: 3
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்:இதில், நெடுவரிசை 2 இலிருந்து தனித்துவமான மதிப்புகளைப் பிரித்தெடுக்கிறது; பின்னர்len() ஆனது அவற்றைக் கணக்கிடுகிறது. தொடர்ந்துஇது தரவு பன்முகத்தன்மையைச் சரிபார்க்க அல்லது தனித்துவமான வகைகளைக் கண்டறிய பயனுள்ளதாக இருக்கசெய்கின்றது.
# 7. நிபந்தனையை திரட்டுதல்- தரவின் குறிப்பிட்ட துணைக்குழுக்களுக்கான சராசரிகள் அல்லது பிற புள்ளிவிவரங்களைக் கணக்கிடுவதற்கான கட்டளைவரி பின்வருமாறு:
print(f”Average: ${sum(float(r[3]) for r in import(‘csv’).reader(open(path)) if r[6] == ‘North America’ and r[0] != ‘transaction_id’) / sum(1 for r in import(‘csv’).reader(open(path)) if r[6] == ‘North America’ and r[0] != ‘transaction_id’):,.2f}”)
வெளியீடு: Average: $70,396.86
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்: இந்த ஒருவரிகட்டளையானது நெடுவரிசை 6 இல் உள்ள நிபந்தனையுடன் பொருந்தக்கூடிய கிடைவரிசைகளுக்கான நெடுவரிசை 3 இன் சராசரியைக் கணக்கிடுகிறது. பின்னர் இது ஒரு எண்ணிக்கையால் வகுக்கப்பட்ட கூட்டுத்தொகையைப் பயன்படுத்துகிறது (ஒரு உருவாக்கியின் வெளிப்பாடு வழியாக). தொடர்ந்துஇது கோப்பை இரண்டு முறை படிக்கிறது ஆனால் நினைவக பயன்பாட்டை குறைவாக வைத்திருக்கிறது.
# 8. பல நெடுவரிசையினை வடிகட்டிடுதல்-வெவ்வேறு நெடுவரிசைகளில் ஒரே நேரத்தில் பல வடிகட்டி நிபந்தனைகளைப் பயன்படுத்திடுவதற்கான கட்டளைவரி பின்வருமாறு:
print(“\n”.join(f”{r[1]} | {r[2]} | ${float(r[3]):,.2f}” for r in import(‘csv’).reader(open(path)) if r[2] == ‘Software’ and float(r[3]) > 50000 and r[0] != ‘transaction_id’))
வெளியீடு: Zeta Systems | Software | $156,000.00
Iota Industries | Software | $67,500.25
Omicron LLC | Software | $128,900.00
Sigma Corp | Software | $89,700.75
Phi Corp | Software | $176,500.25
Omega Technologies | Software | $134,600.50
Nexus Corp | Software | $92,300.75
Apex Industries | Software | $57,800.00
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்:இது பல்வேறு வடிகட்டி நிபந்தனைகளை,இயக்கிகளுடன் இணைக்கிறது, பின்னர்சரத்தி்ன் சமத்துவத்தையும் எண்களின் ஒப்பீடுகளையும் சரிபார்க்கிறது. தொடர்ந்து சுத்தமான காட்சிக்காக pipeஎனும் பிரிப்பான்களுடன் வெளியீட்டை வடிவமைக்கிறது.
# 9. நெடுவரிசையின் புள்ளிவிவரங்களைக் கணக்கிடுதல்- ஒரே பார்வையில்(shot.) எண் நெடுவரிசைகளுக்கான குறைந்தபட்ச, அதிகபட்ச சராசரி ஆகிய புள்ளிவிவரங்களை உருவாக்கிடுவதற்கான கட்டளைவரி பின்வருமாறு:
vals = [float(r[3]) for r in import(‘csv’).reader(open(path)) if r[0] != ‘transaction_id’]; print(f”Min: ${min(vals):,.2f} | Max: ${max(vals):,.2f} | Averg: ${sum(vals)/len(vals):,.2f}”); print(vals)
வெளியீடு: Min: $8,750.25 | Max $176,500.25 | Avg: $62,564.13
[45000.0, 12500.5, 78900.0, 23400.75, 8750.25, 156000.0, 34500.5, 19800.0, 67500.25, 91200.75, 28750.0, 43200.5, 76800.25, 15600.75, 128900.0, 52300.5, 31200.25, 89700.75, 64800.0, 22450.5, 176500.25, 38900.75, 27300.0, 134600.5, 71200.25, 92300.75, 18900.5, 105600.25, 57800.0]
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்:இது நெடுவரிசை 3 இலிருந்து எண் மதிப்புகளின் பட்டியலை உருவாக்குகிறது, பின்னர் ஒரு வரியில் குறைந்தபட்சம், அதிகபட்சம் , சராசரி ஆகியவற்றினைக் கணக்கிடுகிறது. தொடர்ந்து அரைப்புள்ளியின் நிலைகளைப் பிரிக்கிறது. இது தொடரோட்டத்தை விட அதிக நினைவகம் கொண்டது, ஆனால் இந்த புள்ளிவிவரங்களுக்கான பல்வேறு கோப்பினை படிப்பதை விட விரைவானது.
# 10. வடிகட்டப்பட்ட தரவை பதிவேற்றம் செய்திடுதல்– அளவுகோல்களை பூர்த்தி செய்யும் வரிசைகளை மட்டுமே கொண்ட புதிய CSV கோப்பை உருவாக்கிடு வதற்கான கட்டளைவரி பின்வருமாறு:
import(‘csv’).writer(open(‘filtered.csv’,’w’,newline=”)).writerows([r for r in list(import(‘csv’).reader(open(path)))[1:] if float(r[3]) > 75000])
இந்தகட்டளைவரியை புரிந்துகொள்ளுதல்: இது CSV ஐப் படிக்கிறது, பின்னர்ஒரு நிபந்தனையின் அடிப்படையில் வரிசைகளை வடிகட்டுகிறது . தொடர்ந்துஅவற்றை ஒரு புதிய கோப்பில் எழுதுகிறது. அதன்பிறகுnewline= எனும்அளவுருவானது கூடுதல் வரி முறிவுகளைத் தடுக்கிறது. முக்கியமாகஇந்த எடுத்துக்காட்டு தலைப்பைத் தவிர்க்கிறது என்பதை நினைவில் கொள்க (இது [1:] ஐப் பயன்படுத்துகிறது), எனவே வெளியீட்டில் நமக்கு ஒரு தலைப்பு தேவைப்பட்டால் அதை வெளிப்படையாகச் சேர்த்திடுக.
சுருக்கமாக கூறுவதெனில் : இத்தகைய ஒற்றை-வரிகட்டளைகள் பின்வருவன வற்றிற்கு பயனுள்ளதாக இருக்கும்:விரைவான தரவு ஆய்வும் சரிபார்ப்பும். எளிய தரவு மாற்றங்கள் .முழு உரைநிரல்களை எழுதுவதற்கு முன்மாதிரி செய்தல் .ஆனால் அவற்றைத் தவிர்க்கவிரும்புதல்: உற்பத்தி தரவு செயலாக்கம் .சிக்கலான பிழைகளை கையாளுதல் தேவைப்படும் கோப்புகள் .பல்வேறு-படிமுறை மாற்றங்கள். மேல்நிலை அமைப்பு இல்லாமல் விரைவான தீர்வுகள் தேவைப்படும்போது இந்த நுட்பங்கள் பைத்தானின் உள்ளமைக்கப்பட்ட CSV தொகுப்புடன் செயல்படுகின்றன.