தமிழ்

விண்டோ ஃபங்ஷன்களின் மூலம் காலத் தொடர் தரவுகளின் ஆற்றலைத் திறந்திடுங்கள். இந்த வழிகாட்டி தரவு பகுப்பாய்விற்கான முக்கியக் கருத்துக்கள், நடைமுறை உதாரணங்கள் மற்றும் மேம்பட்ட நுட்பங்களை விவரிக்கிறது.

காலத் தொடர் பகுப்பாய்வு: தரவு நுண்ணறிவுகளுக்கான விண்டோ ஃபங்ஷன்களில் தேர்ச்சி பெறுதல்

காலத் தொடர் தரவு, அதன் வரிசைமுறை மற்றும் நேரத்தைச் சார்ந்த தன்மையால் வகைப்படுத்தப்படுகிறது, இது பல தொழில்களிலும் பரவலாக உள்ளது. பங்கு விலைகளைக் கண்காணிப்பது, இணையதளப் போக்குவரத்தைக் கண்காணிப்பது, சென்சார் ரீடிங்குகளைப் பகுப்பாய்வு செய்வது மற்றும் விற்பனைப் போக்குகளைக் கணிப்பது என, தகவலறிந்த முடிவெடுப்பதற்கு காலத் தொடர் தரவிலிருந்து அர்த்தமுள்ள நுண்ணறிவுகளைப் பிரித்தெடுக்கும் திறன் முக்கியமானது. விண்டோ ஃபங்ஷன்கள் ஒரு அட்டவணை அல்லது டேட்டா ஃபிரேமில் தற்போதைய வரிசையுடன் தொடர்புடைய வரிசைகளின் தொகுப்பில் கணக்கீடுகளைச் செய்வதற்கு ஒரு சக்திவாய்ந்த மற்றும் நெகிழ்வான கருவித்தொகுப்பை வழங்குகின்றன, இது காலத் தொடர் பகுப்பாய்விற்கு இன்றியமையாததாக ஆக்குகிறது.

காலத் தொடர் தரவைப் புரிந்துகொள்ளுதல்

காலத் தொடர் தரவு என்பது கால வரிசையில் குறியிடப்பட்ட தரவுப் புள்ளிகளின் வரிசையாகும். தரவுப் புள்ளிகள் பல்வேறு அளவீடுகளைக் குறிக்கலாம், அவையாவன:

காலத் தொடர் தரவைப் பகுப்பாய்வு செய்வது என்பது வடிவங்கள், போக்குகள் மற்றும் பருவகாலத் தன்மையைக் கண்டறிவதை உள்ளடக்குகிறது, இது எதிர்கால மதிப்புகளை முன்னறிவிப்பதற்கும், முரண்பாடுகளைக் கண்டறிவதற்கும், மற்றும் வணிக செயல்முறைகளை மேம்படுத்துவதற்கும் பயன்படுத்தப்படலாம்.

விண்டோ ஃபங்ஷன்களுக்கான அறிமுகம்

விண்டோ ஃபங்ஷன்கள், விண்டோ அக்ரிகேட்ஸ் அல்லது அனலிட்டிக் ஃபங்ஷன்கள் என்றும் அழைக்கப்படுகின்றன, பாரம்பரிய அக்ரிகேட் ஃபங்ஷன்களைப் (எ.கா., SUM, AVG, COUNT) போல வரிசைகளை ஒரே முடிவுத் தொகுப்பாகக் குழுவாக்காமல், தற்போதைய வரிசையுடன் தொடர்புடைய வரிசைகளின் தொகுப்பில் கணக்கீடுகளைச் செய்ய உங்களை அனுமதிக்கின்றன. இந்தத் திறன் காலத் தொடர் பகுப்பாய்விற்கு மிகவும் பயனுள்ளதாக இருக்கும், அங்கு நீங்கள் நகரும் சராசரிகள், ஒட்டுமொத்த கூட்டுத்தொகைகள் மற்றும் பிற கால அடிப்படையிலான அளவீடுகளை அடிக்கடி கணக்கிட வேண்டும்.

ஒரு விண்டோ ஃபங்ஷன் பொதுவாக பின்வரும் கூறுகளைக் கொண்டுள்ளது:

  1. ஃபங்ஷன்: செய்யப்பட வேண்டிய கணக்கீடு (எ.கா., AVG, SUM, RANK, LAG).
  2. OVER clause: கணக்கீட்டிற்குப் பயன்படுத்தப்படும் வரிசைகளின் விண்டோவை வரையறுக்கிறது.
  3. PARTITION BY clause (விருப்பத்தேர்வு): தரவைப் பகிர்வுகளாகப் பிரிக்கிறது, மேலும் விண்டோ ஃபங்ஷன் ஒவ்வொரு பகிர்விற்கும் சுயாதீனமாகப் பயன்படுத்தப்படுகிறது.
  4. ORDER BY clause (விருப்பத்தேர்வு): ஒவ்வொரு பகிர்விற்குள்ளும் வரிசைகளின் வரிசையைக் குறிப்பிடுகிறது.
  5. ROWS/RANGE clause (விருப்பத்தேர்வு): விண்டோ ஃபிரேமை வரையறுக்கிறது, இது கணக்கீட்டிற்கு தற்போதைய வரிசையைப் பொறுத்து வரிசைகளின் தொகுப்பாகும்.

முக்கியக் கருத்துகள் மற்றும் தொடரியல்

1. The OVER() Clause

OVER() clause என்பது ஒரு விண்டோ ஃபங்ஷனின் இதயமாகும். இது ஃபங்ஷன் செயல்படும் வரிசைகளின் விண்டோவை வரையறுக்கிறது. வாதங்கள் இல்லாத ஒரு எளிய OVER() clause முழு முடிவுத் தொகுப்பையும் விண்டோவாகக் கருதும். எடுத்துக்காட்டாக:

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  AVG(sales) OVER()
FROM
  sales_data;

இந்த வினவல் sales_data அட்டவணையில் உள்ள அனைத்து தேதிகளுக்கும் சராசரி விற்பனையைக் கணக்கிடுகிறது.

2. PARTITION BY

PARTITION BY clause தரவைப் பகிர்வுகளாகப் பிரிக்கிறது, மேலும் விண்டோ ஃபங்ஷன் ஒவ்வொரு பகிர்விற்கும் தனித்தனியாகப் பயன்படுத்தப்படுகிறது. உங்கள் தரவிற்குள் வெவ்வேறு குழுக்களுக்கான அளவீடுகளைக் கணக்கிட விரும்பும்போது இது பயனுள்ளதாக இருக்கும்.

SQL எடுத்துக்காட்டு:

SELECT
  date,
  product_id,
  sales,
  AVG(sales) OVER (PARTITION BY product_id)
FROM
  sales_data;

இந்த வினவல் ஒவ்வொரு தயாரிப்புக்கும் தனித்தனியாக சராசரி விற்பனையைக் கணக்கிடுகிறது.

3. ORDER BY

ORDER BY clause ஒவ்வொரு பகிர்விற்குள்ளும் வரிசைகளின் வரிசையைக் குறிப்பிடுகிறது. இயங்கும் மொத்தங்கள், நகரும் சராசரிகள் மற்றும் பிற கால அடிப்படையிலான அளவீடுகளைக் கணக்கிடுவதற்கு இது அவசியம்.

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  SUM(sales) OVER (ORDER BY date)
FROM
  sales_data;

இந்த வினவல் காலப்போக்கில் விற்பனையின் ஒட்டுமொத்த கூட்டுத்தொகையைக் கணக்கிடுகிறது.

4. ROWS/RANGE

ROWS மற்றும் RANGE clauses விண்டோ ஃபிரேமை வரையறுக்கின்றன, இது கணக்கீட்டிற்குப் பயன்படுத்தப்படும் தற்போதைய வரிசையைப் பொறுத்து வரிசைகளின் தொகுப்பாகும். ROWS clause භෞತಿಕ வரிசை எண்ணின் அடிப்படையில் விண்டோ ஃபிரேமைக் குறிப்பிடுகிறது, அதேசமயம் RANGE clause ORDER BY நெடுவரிசையின் மதிப்புகளின் அடிப்படையில் விண்டோ ஃபிரேமைக் குறிப்பிடுகிறது.

ROWS எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  AVG(sales) OVER (ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
FROM
  sales_data;

இந்த வினவல் கடந்த 3 நாட்களின் (தற்போதைய நாள் உட்பட) விற்பனையின் நகரும் சராசரியைக் கணக்கிடுகிறது.

RANGE எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  AVG(sales) OVER (ORDER BY date RANGE BETWEEN INTERVAL '2' DAY PRECEDING AND CURRENT ROW)
FROM
  sales_data;

இந்த வினவல் கடந்த 2 நாட்களின் (தற்போதைய நாள் உட்பட) விற்பனையின் நகரும் சராசரியைக் கணக்கிடுகிறது. `RANGE`-க்கு எண் அல்லது தேதி/நேரத் தரவு வகையிலான வரிசைப்படுத்தப்பட்ட நெடுவரிசை தேவை என்பதை நினைவில் கொள்ளவும்.

காலத் தொடர் பகுப்பாய்விற்கான பொதுவான விண்டோ ஃபங்ஷன்கள்

1. ரோலிங்/நகரும் சராசரி

ரோலிங் சராசரி, நகரும் சராசரி என்றும் அழைக்கப்படுகிறது, இது காலத் தொடர் தரவுகளில் குறுகிய கால ஏற்ற இறக்கங்களைச் சரிசெய்வதற்கும் நீண்ட காலப் போக்குகளை முன்னிலைப்படுத்துவதற்கும் பரவலாகப் பயன்படுத்தப்படும் ஒரு நுட்பமாகும். இது ஒரு குறிப்பிட்ட கால விண்டோவில் மதிப்புகளை சராசரி செய்வதன் மூலம் கணக்கிடப்படுகிறது.

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  AVG(sales) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_average_7_days
FROM
  sales_data;

இந்த வினவல் விற்பனையின் 7-நாள் நகரும் சராசரியைக் கணக்கிடுகிறது.

பைதான் எடுத்துக்காட்டு (பாண்டாஸ் பயன்படுத்தி):

import pandas as pd

# 'sales_df' என்ற பெயரில் 'date' மற்றும் 'sales' நெடுவரிசைகளுடன் ஒரு பாண்டாஸ் டேட்டாஃபிரேம் இருப்பதாகக் கருதுங்கள்

sales_df['moving_average_7_days'] = sales_df['sales'].rolling(window=7).mean()

உலகளாவிய பயன்பாட்டு எடுத்துக்காட்டு: ஒரு பன்னாட்டு சில்லறை விற்பனையாளர் தினசரி விற்பனை ஏற்ற இறக்கங்களைச் சரிசெய்யவும், வெவ்வேறு பிராந்தியங்களில் உள்ள அடிப்படை விற்பனைப் போக்குలనుக் கண்டறியவும் 30-நாள் நகரும் சராசரியைப் பயன்படுத்தலாம்.

2. ஒட்டுமொத்த கூட்டுத்தொகை

ஒட்டுமொத்த கூட்டுத்தொகை, இயங்கும் மொத்தம் என்றும் அழைக்கப்படுகிறது, தற்போதைய வரிசை வரை மதிப்புகளின் கூட்டுத்தொகையைக் கணக்கிடுகிறது. காலப்போக்கில் திரட்டப்பட்ட மொத்த மதிப்பைக் கண்காணிக்க இது பயனுள்ளதாக இருக்கும்.

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  SUM(sales) OVER (ORDER BY date) AS cumulative_sales
FROM
  sales_data;

இந்த வினவல் காலப்போக்கில் விற்பனையின் ஒட்டுமொத்த கூட்டுத்தொகையைக் கணக்கிடுகிறது.

பைதான் எடுத்துக்காட்டு (பாண்டாஸ் பயன்படுத்தி):

import pandas as pd

# 'sales_df' என்ற பெயரில் 'date' மற்றும் 'sales' நெடுவரிசைகளுடன் ஒரு பாண்டாஸ் டேட்டாஃபிரேம் இருப்பதாகக் கருதுங்கள்

sales_df['cumulative_sales'] = sales_df['sales'].cumsum()

உலகளாவிய பயன்பாட்டு எடுத்துக்காட்டு: ஒரு சர்வதேச இ-காமர்ஸ் நிறுவனம் வெவ்வேறு சந்தைகளில் ஒரு புதிய தயாரிப்பு வெளியீட்டிலிருந்து உருவாக்கப்பட்ட மொத்த வருவாயைக் கண்காணிக்க ஒட்டுமொத்த விற்பனையைப் பயன்படுத்தலாம்.

3. லீட் மற்றும் லேக்

LEAD மற்றும் LAG ஃபங்ஷன்கள் முறையே அடுத்தடுத்த அல்லது முந்தைய வரிசைகளிலிருந்து தரவை அணுக உங்களை அனுமதிக்கின்றன. காலத்திற்குக் காலம் ஏற்படும் மாற்றங்களைக் கணக்கிடுவதற்கும், போக்குகளைக் கண்டறிவதற்கும், மற்றும் வெவ்வேறு காலப் பகுதிகளுக்கு இடையிலான மதிப்புகளை ஒப்பிடுவதற்கும் அவை பயனுள்ளதாக இருக்கும்.

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  LAG(sales, 1, 0) OVER (ORDER BY date) AS previous_day_sales,
  sales - LAG(sales, 1, 0) OVER (ORDER BY date) AS sales_difference
FROM
  sales_data;

இந்த வினவல் முந்தைய நாளுடன் ஒப்பிடும்போது விற்பனை வேறுபாட்டைக் கணக்கிடுகிறது. `LAG(sales, 1, 0)` ஃபங்ஷன் முந்தைய வரிசையிலிருந்து (ஆஃப்செட் 1) விற்பனை மதிப்பை மீட்டெடுக்கிறது, மேலும் முந்தைய வரிசை இல்லை என்றால் (எ.கா., முதல் வரிசை), அது 0-ஐ (இயல்புநிலை மதிப்பு) வழங்கும்.

பைதான் எடுத்துக்காட்டு (பாண்டாஸ் பயன்படுத்தி):

import pandas as pd

# 'sales_df' என்ற பெயரில் 'date' மற்றும் 'sales' நெடுவரிசைகளுடன் ஒரு பாண்டாஸ் டேட்டாஃபிரேம் இருப்பதாகக் கருதுங்கள்

sales_df['previous_day_sales'] = sales_df['sales'].shift(1)
sales_df['sales_difference'] = sales_df['sales'] - sales_df['previous_day_sales'].fillna(0)

உலகளாவிய பயன்பாட்டு எடுத்துக்காட்டு: ஒரு உலகளாவிய விமான நிறுவனம் லீட் மற்றும் லேக் ஃபங்ஷன்களைப் பயன்படுத்தி வெவ்வேறு வாரங்களில் ஒரே வழித்தடத்திற்கான டிக்கெட் விற்பனையை ஒப்பிட்டு, சாத்தியமான தேவை ஏற்ற இறக்கங்களைக் கண்டறியலாம்.

4. ரேங்க் மற்றும் டென்ஸ் ரேங்க்

RANK() மற்றும் DENSE_RANK() ஃபங்ஷன்கள் குறிப்பிட்ட வரிசைமுறையின் அடிப்படையில் ஒரு பகிர்விற்குள் ஒவ்வொரு வரிசைக்கும் ஒரு தரவரிசையை வழங்குகின்றன. RANK() இடைவெளிகளுடன் தரவரிசைகளை வழங்குகிறது (எ.கா., 1, 2, 2, 4), அதேசமயம் DENSE_RANK() இடைவெளிகள் இல்லாமல் தரவரிசைகளை வழங்குகிறது (எ.கா., 1, 2, 2, 3).

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  RANK() OVER (ORDER BY sales DESC) AS sales_rank,
  DENSE_RANK() OVER (ORDER BY sales DESC) AS sales_dense_rank
FROM
  sales_data;

இந்த வினவல் விற்பனை மதிப்புகளை இறங்கு வரிசையில் தரவரிசைப்படுத்துகிறது.

உலகளாவிய பயன்பாட்டு எடுத்துக்காட்டு: ஒரு உலகளாவிய ஆன்லைன் சந்தை ஒவ்வொரு நாட்டிலும் அல்லது பிராந்தியத்திலும் சிறந்த விற்பனையாகும் தயாரிப்புகளை அடையாளம் காண தரவரிசை ஃபங்ஷன்களைப் பயன்படுத்தலாம்.

மேம்பட்ட நுட்பங்கள் மற்றும் பயன்பாடுகள்

1. விண்டோ ஃபங்ஷன்களை இணைத்தல்

மிகவும் சிக்கலான கணக்கீடுகளைச் செய்ய விண்டோ ஃபங்ஷன்களை இணைக்கலாம். எடுத்துக்காட்டாக, நீங்கள் ஒட்டுமொத்த கூட்டுத்தொகையின் நகரும் சராசரியைக் கணக்கிடலாம்.

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  AVG(cumulative_sales) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_average_cumulative_sales
FROM
  (
    SELECT
      date,
      sales,
      SUM(sales) OVER (ORDER BY date) AS cumulative_sales
    FROM
      sales_data
  ) AS subquery;

2. நிபந்தனைக்குட்பட்ட அக்ரிகேஷனுடன் விண்டோ ஃபங்ஷன்களைப் பயன்படுத்துதல்

குறிப்பிட்ட நிபந்தனைகளின் அடிப்படையில் கணக்கீடுகளைச் செய்ய, நிபந்தனைக்குட்பட்ட அக்ரிகேஷனுடன் (எ.கா., CASE கூற்றுகளைப் பயன்படுத்தி) விண்டோ ஃபங்ஷன்களைப் பயன்படுத்தலாம்.

SQL எடுத்துக்காட்டு:

SELECT
  date,
  sales,
  AVG(CASE WHEN sales > 100 THEN sales ELSE NULL END) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_average_high_sales
FROM
  sales_data;

இந்த வினவல் விற்பனை 100-ஐ விட அதிகமாக இருக்கும் நாட்களுக்கு மட்டுமே விற்பனையின் நகரும் சராசரியைக் கணக்கிடுகிறது.

3. காலத் தொடர் சிதைவு

ஒரு காலத் தொடரை அதன் போக்கு, பருவகாலம் மற்றும் எஞ்சிய கூறுகளாகப் பிரிக்க விண்டோ ஃபங்ஷன்களைப் பயன்படுத்தலாம். இது போக்கை மதிப்பிடுவதற்கு நகரும் சராசரிகளைக் கணக்கிடுவது, பருவகால வடிவங்களை அடையாளம் காண்பது, பின்னர் எஞ்சியவற்றைப் பெற போக்கு மற்றும் பருவகால கூறுகளைக் கழிப்பது ஆகியவற்றை உள்ளடக்கியது.

4. முரண்பாடு கண்டறிதல்

நகரும் சராசரிகள் மற்றும் நிலையான விலகல்களைக் கணக்கிடுவதன் மூலம் காலத் தொடர் தரவுகளில் முரண்பாடுகளைக் கண்டறிய விண்டோ ஃபங்ஷன்களைப் பயன்படுத்தலாம். ஒரு குறிப்பிட்ட வரம்பிற்கு வெளியே வரும் தரவுப் புள்ளிகள் (எ.கா., நகரும் சராசரியிலிருந்து +/- 3 நிலையான விலகல்கள்) முரண்பாடுகளாகக் குறிக்கப்படலாம்.

தொழில்கள் முழுவதும் நடைமுறை எடுத்துக்காட்டுகள்

1. நிதி

2. சில்லறை விற்பனை

3. உற்பத்தி

4. சுகாதாரம்

சரியான கருவியைத் தேர்ந்தெடுப்பது

விண்டோ ஃபங்ஷன்கள் பல்வேறு தரவு செயலாக்கக் கருவிகள் மற்றும் நிரலாக்க மொழிகளில் கிடைக்கின்றன, அவையாவன:

கருவியின் தேர்வு உங்கள் குறிப்பிட்ட தேவைகள் மற்றும் தொழில்நுட்ப நிபுணத்துவத்தைப் பொறுத்தது. SQL ரிலேஷனல் டேட்டாபேஸ்களில் சேமிக்கப்பட்ட தரவுகளுக்கு மிகவும் பொருத்தமானது, அதேசமயம் பைதான் மற்றும் ஸ்பார்க் பெரிய தரவுத்தொகுப்புகளைச் செயலாக்குவதற்கும் சிக்கலான பகுப்பாய்வுகளைச் செய்வதற்கும் மிகவும் நெகிழ்வானவை.

சிறந்த நடைமுறைகள்

முடிவுரை

விண்டோ ஃபங்ஷன்கள் காலத் தொடர் பகுப்பாய்விற்கான ஒரு சக்திவாய்ந்த கருவியாகும், இது நகரும் சராசரிகள், ஒட்டுமொத்த கூட்டுத்தொகைகள், லீட்/லேக் மதிப்புகள் மற்றும் பிற கால அடிப்படையிலான அளவீடுகளைக் கணக்கிட உதவுகிறது. விண்டோ ஃபங்ஷன்களில் தேர்ச்சி பெறுவதன் மூலம், உங்கள் காலத் தொடர் தரவிலிருந்து மதிப்புமிக்க நுண்ணறிவுகளைத் திறந்து மேலும் தகவலறிந்த முடிவுகளை எடுக்கலாம். நீங்கள் நிதித் தரவு, விற்பனைத் தரவு, சென்சார் தரவு அல்லது இணையப் போக்குவரத்து தரவைப் பகுப்பாய்வு செய்தாலும், பாரம்பரிய அக்ரிகேஷன் நுட்பங்களைப் பயன்படுத்தி கண்டறிய கடினமாக இருக்கும் வடிவங்கள், போக்குகள் மற்றும் முரண்பாடுகளை அடையாளம் காண விண்டோ ஃபங்ஷன்கள் உங்களுக்கு உதவும். விண்டோ ஃபங்ஷன்களின் முக்கியக் கருத்துகள் மற்றும் தொடரியலைப் புரிந்துகொண்டு சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், பல்வேறு தொழில்களில் உள்ள பரந்த அளவிலான நிஜ உலகப் பிரச்சனைகளைத் தீர்க்க அவற்றை நீங்கள் திறம்படப் பயன்படுத்தலாம்.