ಪಾಂಡಾಸ್ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸುವ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ, ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳು, ಚಂಕಿಂಗ್, ವರ್ಗೀಯ ವೇರಿಯೇಬಲ್ಗಳು ಮತ್ತು ದೊಡ್ಡ ದತ್ತಾಂಶಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಪರಿಣಾಮಕಾರಿ ತಂತ್ರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
ಪಾಂಡಾಸ್ ಕಾರ್ಯಕ್ಷಮತೆ ಆಪ್ಟಿಮೈಸೇಶನ್: ಮೆಮೊರಿ ಬಳಕೆಯ ಕಡಿತದಲ್ಲಿ ಪರಿಣತಿ
ಪಾಂಡಾಸ್ ದತ್ತಾಂಶ ವಿಶ್ಲೇಷಣೆಗಾಗಿ ಪ್ರಬಲವಾದ ಪೈಥಾನ್ ಲೈಬ್ರರಿಯಾಗಿದೆ, ಇದು ಹೊಂದಿಕೊಳ್ಳುವ ದತ್ತಾಂಶ ರಚನೆಗಳು ಮತ್ತು ದತ್ತಾಂಶ ವಿಶ್ಲೇಷಣೆ ಪರಿಕರಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ದೊಡ್ಡ ದತ್ತಾಂಶಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಮೆಮೊರಿ ಬಳಕೆಯು ಗಮನಾರ್ಹ ಅಡಚಣೆಯಾಗಬಹುದು, ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಕ್ರ್ಯಾಶ್ ಮಾಡಲು ಸಹ ಕಾರಣವಾಗಬಹುದು. ಈ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ ಪಾಂಡಾಸ್ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ವಿವಿಧ ತಂತ್ರಗಳನ್ನು ಪರಿಶೋಧಿಸುತ್ತದೆ, ಇದು ದೊಡ್ಡ ದತ್ತಾಂಶಗಳನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಪಾಂಡಾಸ್ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು
ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳಿಗೆ ಧುಮುಕುವ ಮೊದಲು, ಪಾಂಡಾಸ್ ಡೇಟಾವನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಹೇಗೆ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ. ಪಾಂಡಾಸ್ ಪ್ರಾಥಮಿಕವಾಗಿ ಡೇಟಾಫ್ರೇಮ್ಗಳು ಮತ್ತು ಸರಣಿಗಳ ಒಳಗೆ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು NumPy ಅರೇಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಕಾಲಮ್ನ ದತ್ತಾಂಶ ಪ್ರಕಾರವು ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, `int64` ಕಾಲಮ್ `int32` ಕಾಲಮ್ನ ದುಪ್ಪಟ್ಟು ಮೆಮೊರಿಯನ್ನು ಬಳಸುತ್ತದೆ.
ನೀವು .memory_usage() ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾಫ್ರೇಮ್ನ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಪರಿಶೀಲಿಸಬಹುದು:
import pandas as pd
data = {
'col1': [1, 2, 3, 4, 5],
'col2': ['A', 'B', 'C', 'D', 'E'],
'col3': [1.1, 2.2, 3.3, 4.4, 5.5]
}
df = pd.DataFrame(data)
memory_usage = df.memory_usage(deep=True)
print(memory_usage)
ಆಬ್ಜೆಕ್ಟ್ (ಸ್ಟ್ರಿಂಗ್) ಕಾಲಮ್ಗಳ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ನಿಖರವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು deep=True ವಾದವು ಅತ್ಯಗತ್ಯ.
ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ತಂತ್ರಗಳು
1. ಸರಿಯಾದ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು
ಪ್ರತಿಯೊಂದು ಕಾಲಮ್ಗೆ ಸೂಕ್ತವಾದ ದತ್ತಾಂಶ ಪ್ರಕಾರವನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವಲ್ಲಿ ಅತ್ಯಂತ ಮೂಲಭೂತ ಹಂತವಾಗಿದೆ. ಪಾಂಡಾಸ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳನ್ನು ಊಹಿಸುತ್ತದೆ, ಆದರೆ ಇದು ಹೆಚ್ಚಾಗಿ ಅಗತ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಮೆಮೊರಿ-ತೀವ್ರ ಪ್ರಕಾರಗಳಿಗೆ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, 0 ಮತ್ತು 100 ರ ನಡುವಿನ ಪೂರ್ಣಾಂಕಗಳನ್ನು ಹೊಂದಿರುವ ಕಾಲಮ್ಗೆ `int64` ಪ್ರಕಾರವನ್ನು ನಿಯೋಜಿಸಬಹುದು, ಆದರೂ `int8` ಅಥವಾ `uint8` ಸಾಕಾಗುತ್ತದೆ.
ಉದಾಹರಣೆ: ಸಂಖ್ಯಾತ್ಮಕ ಪ್ರಕಾರಗಳನ್ನು ಡೌನ್ಕಾಸ್ಟ್ ಮಾಡುವುದು
downcast ಪ್ಯಾರಾಮೀಟರ್ನೊಂದಿಗೆ pd.to_numeric() ಕಾರ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಸಂಖ್ಯಾತ್ಮಕ ಪ್ರಕಾರಗಳನ್ನು ಚಿಕ್ಕ ಪ್ರಾತಿನಿಧ್ಯಗಳಿಗೆ ಡೌನ್ಕಾಸ್ಟ್ ಮಾಡಬಹುದು:
def reduce_mem_usage(df):
"""Iterate through all the columns of a dataframe and modify the data type
to reduce memory usage.
"""
start_mem = df.memory_usage().sum() / 1024**2
print('Memory usage of dataframe is {:.2f} MB'.format(start_mem))
for col in df.columns:
if df[col].dtype == 'object':
continue # Skip strings, handle them separately
col_type = df[col].dtype
if col_type in ['int64','int32','int16']:
c_min = df[col].min()
c_max = df[col].max()
if c_min > np.iinfo(np.int8).min and c_max < np.iinfo(np.int8).max:
df[col] = df[col].astype(np.int8)
elif c_min > np.iinfo(np.int16).min and c_max < np.iinfo(np.int16).max:
df[col] = df[col].astype(np.int16)
elif c_min > np.iinfo(np.int32).min and c_max < np.iinfo(np.int32).max:
df[col] = df[col].astype(np.int32)
else:
df[col] = df[col].astype(np.int64)
elif col_type in ['float64','float32']:
c_min = df[col].min()
c_max = df[col].max()
if c_min > np.finfo(np.float16).min and c_max < np.finfo(np.float16).max:
df[col] = df[col].astype(np.float16)
elif c_min > np.finfo(np.float32).min and c_max < np.finfo(np.float32).max:
df[col] = df[col].astype(np.float32)
else:
df[col] = df[col].astype(np.float64)
end_mem = df.memory_usage().sum() / 1024**2
print('Memory usage after optimization is: {:.2f} MB'.format(end_mem))
print('Decreased by {:.1f}%'.format(100 * (start_mem - end_mem) / start_mem))
return df
ಉದಾಹರಣೆ: ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ವರ್ಗೀಯ ಪ್ರಕಾರಗಳಾಗಿ ಪರಿವರ್ತಿಸುವುದು
ಕಾಲಮ್ ಸೀಮಿತ ಸಂಖ್ಯೆಯ ವಿಶಿಷ್ಟ ಸ್ಟ್ರಿಂಗ್ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಅದನ್ನು ವರ್ಗೀಯ ಪ್ರಕಾರಕ್ಕೆ ಪರಿವರ್ತಿಸುವುದು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ವರ್ಗೀಯ ಪ್ರಕಾರಗಳು ವಿಶಿಷ್ಟ ಮೌಲ್ಯಗಳನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ಸಂಗ್ರಹಿಸುತ್ತವೆ ಮತ್ತು ಕಾಲಮ್ನಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಅಂಶವನ್ನು ವಿಶಿಷ್ಟ ಮೌಲ್ಯಗಳನ್ನು ಉಲ್ಲೇಖಿಸುವ ಪೂರ್ಣಾಂಕ ಕೋಡ್ನಂತೆ ಪ್ರತಿನಿಧಿಸುತ್ತವೆ.
df['col2'] = df['col2'].astype('category')
ಜಾಗತಿಕ ಇ-ಕಾಮರ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಾಗಿ ಗ್ರಾಹಕ ವಹಿವಾಟುಗಳ ದತ್ತಾಂಶವನ್ನು ಪರಿಗಣಿಸಿ. 'ದೇಶ' ಕಾಲಮ್ ಕೆಲವು ನೂರು ವಿಶಿಷ್ಟ ದೇಶದ ಹೆಸರುಗಳನ್ನು ಮಾತ್ರ ಹೊಂದಿರಬಹುದು, ಆದರೆ ದತ್ತಾಂಶವು ಲಕ್ಷಾಂತರ ವಹಿವಾಟುಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. 'ದೇಶ' ಕಾಲಮ್ ಅನ್ನು ವರ್ಗೀಯ ಪ್ರಕಾರಕ್ಕೆ ಪರಿವರ್ತಿಸುವುದು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ನಾಟಕೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
2. ಚಂಕಿಂಗ್ ಮತ್ತು ಇಟರೇಶನ್
ಮೆಮೊರಿಗೆ ಹೊಂದಿಕೆಯಾಗದ ದೊಡ್ಡ ದತ್ತಾಂಶಗಳನ್ನು ನೀವು ವ್ಯವಹರಿಸುವಾಗ, ನೀವು pd.read_csv() ಅಥವಾ pd.read_excel() ನಲ್ಲಿ chunksize ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ದತ್ತಾಂಶವನ್ನು ಚಂಕ್ಗಳಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು. ಚಿಕ್ಕದಾದ, ನಿರ್ವಹಿಸಬಹುದಾದ ತುಣುಕುಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
for chunk in pd.read_csv('large_dataset.csv', chunksize=100000):
# Process the chunk (e.g., perform calculations, filtering, aggregation)
print(f"Processing chunk with {len(chunk)} rows")
# Optionally, append results to a file or database.
ಉದಾಹರಣೆ: ದೊಡ್ಡ ಲಾಗ್ ಫೈಲ್ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದು
ಜಾಗತಿಕ ನೆಟ್ವರ್ಕ್ ಮೂಲಸೌಕರ್ಯದಿಂದ ಬೃಹತ್ ಲಾಗ್ ಫೈಲ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ಲಾಗ್ ಫೈಲ್ ಮೆಮೊರಿಗೆ ಹೊಂದಿಕೆಯಾಗಲು ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ. ಚಂಕಿಂಗ್ ಅನ್ನು ಬಳಸುವ ಮೂಲಕ, ನೀವು ಲಾಗ್ ಫೈಲ್ ಮೂಲಕ ಪುನರಾವರ್ತಿಸಬಹುದು, ನಿರ್ದಿಷ್ಟ ಘಟನೆಗಳು ಅಥವಾ ಮಾದರಿಗಳಿಗಾಗಿ ಪ್ರತಿ ಚಂಕ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಬಹುದು ಮತ್ತು ಮೆಮೊರಿ ಮಿತಿಗಳನ್ನು ಮೀರದೆ ಫಲಿತಾಂಶಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಬಹುದು.
3. ಅಗತ್ಯವಿರುವ ಕಾಲಮ್ಗಳನ್ನು ಮಾತ್ರ ಆಯ್ಕೆ ಮಾಡುವುದು
ಹೆಚ್ಚಾಗಿ, ದತ್ತಾಂಶಗಳು ನಿಮ್ಮ ವಿಶ್ಲೇಷಣೆಗೆ ಸಂಬಂಧಿಸದ ಕಾಲಮ್ಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಅಗತ್ಯವಿರುವ ಕಾಲಮ್ಗಳನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡುವುದರಿಂದ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡಬಹುದು. pd.read_csv() ನಲ್ಲಿ usecols ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಬಯಸಿದ ಕಾಲಮ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು.
df = pd.read_csv('large_dataset.csv', usecols=['col1', 'col2', 'col3'])
ಉದಾಹರಣೆ: ಮಾರಾಟ ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸುವುದು
ನೀವು ಹೆಚ್ಚು ಮಾರಾಟವಾಗುವ ಉತ್ಪನ್ನಗಳನ್ನು ಗುರುತಿಸಲು ಮಾರಾಟ ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸುತ್ತಿದ್ದರೆ, ನಿಮಗೆ 'ಉತ್ಪನ್ನ ID', 'ಮಾರಾಟದ ಪ್ರಮಾಣ' ಮತ್ತು 'ಮಾರಾಟದ ಆದಾಯ' ಕಾಲಮ್ಗಳು ಮಾತ್ರ ಬೇಕಾಗಬಹುದು. ಗ್ರಾಹಕರ ಜನಸಂಖ್ಯಾಶಾಸ್ತ್ರ, ಶಿಪ್ಪಿಂಗ್ ವಿಳಾಸಗಳು ಮತ್ತು ಇತರ ಅಪ್ರಸ್ತುತ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದಾದ ಸಂಪೂರ್ಣ ದತ್ತಾಂಶವನ್ನು ಲೋಡ್ ಮಾಡುವುದಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಈ ಕಾಲಮ್ಗಳನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡುವುದು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
4. ವಿರಳ ದತ್ತಾಂಶ ರಚನೆಗಳನ್ನು ಬಳಸುವುದು
ನಿಮ್ಮ ಡೇಟಾಫ್ರೇಮ್ ಅನೇಕ ಕಾಣೆಯಾದ ಮೌಲ್ಯಗಳನ್ನು (NaN ಗಳು) ಅಥವಾ ಸೊನ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಡೇಟಾವನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಪ್ರತಿನಿಧಿಸಲು ನೀವು ವಿರಳ ದತ್ತಾಂಶ ರಚನೆಗಳನ್ನು ಬಳಸಬಹುದು. ವಿರಳ ಡೇಟಾಫ್ರೇಮ್ಗಳು ಕಾಣೆಯಾಗದ ಅಥವಾ ಶೂನ್ಯವಲ್ಲದ ಮೌಲ್ಯಗಳನ್ನು ಮಾತ್ರ ಸಂಗ್ರಹಿಸುತ್ತವೆ, ವಿರಳ ಡೇಟಾದೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
sparse_series = df['col1'].astype('Sparse[float]')
sparse_df = sparse_series.to_frame()
ಉದಾಹರಣೆ: ಗ್ರಾಹಕರ ರೇಟಿಂಗ್ಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುವುದು
ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ಉತ್ಪನ್ನಗಳಿಗೆ ಗ್ರಾಹಕರ ರೇಟಿಂಗ್ಗಳ ದತ್ತಾಂಶವನ್ನು ಪರಿಗಣಿಸಿ. ಹೆಚ್ಚಿನ ಗ್ರಾಹಕರು ಉತ್ಪನ್ನಗಳ ಸಣ್ಣ ಉಪವಿಭಾಗವನ್ನು ಮಾತ್ರ ರೇಟ್ ಮಾಡುತ್ತಾರೆ, ಇದು ವಿರಳ ರೇಟಿಂಗ್ಗಳ ಮ್ಯಾಟ್ರಿಕ್ಸ್ನಲ್ಲಿ ಫಲಿತಾಂಶವನ್ನು ನೀಡುತ್ತದೆ. ಈ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ವಿರಳ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಬಳಸುವುದು ದಟ್ಟವಾದ ಡೇಟಾಫ್ರೇಮ್ಗೆ ಹೋಲಿಸಿದರೆ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
5. ಡೇಟಾವನ್ನು ನಕಲು ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸುವುದು
ಪಾಂಡಾಸ್ ಕಾರ್ಯಾಚರಣೆಗಳು ಕೆಲವೊಮ್ಮೆ ಡೇಟಾಫ್ರೇಮ್ಗಳ ಪ್ರತಿಗಳನ್ನು ರಚಿಸಬಹುದು, ಇದು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಕಾರಣವಾಗುತ್ತದೆ. ಸ್ಥಳದಲ್ಲಿ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಮಾರ್ಪಡಿಸುವುದು (ಸಾಧ್ಯವಾದಾಗ) ಅನಗತ್ಯ ನಕಲನ್ನು ತಪ್ಪಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಉದಾಹರಣೆಗೆ, ಇದರ ಬದಲು:
df = df[df['col1'] > 10]
ಇದನ್ನು ಬಳಸಲು ಪರಿಗಣಿಸಿ:
df.drop(df[df['col1'] <= 10].index, inplace=True)
inplace=True ವಾದವು ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ನಕಲನ್ನು ರಚಿಸದೆ ನೇರವಾಗಿ ಮಾರ್ಪಡಿಸುತ್ತದೆ.
6. ಸ್ಟ್ರಿಂಗ್ ಸಂಗ್ರಹಣೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದು
ಸ್ಟ್ರಿಂಗ್ ಕಾಲಮ್ಗಳು ಗಣನೀಯ ಮೆಮೊರಿಯನ್ನು ಬಳಸಬಹುದು, ವಿಶೇಷವಾಗಿ ಅವು ದೀರ್ಘ ಸ್ಟ್ರಿಂಗ್ಗಳು ಅಥವಾ ಅನೇಕ ವಿಶಿಷ್ಟ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿದ್ದರೆ. ಹಿಂದೆ ತಿಳಿಸಿದಂತೆ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ವರ್ಗೀಯ ಪ್ರಕಾರಗಳಾಗಿ ಪರಿವರ್ತಿಸುವುದು ಒಂದು ಪರಿಣಾಮಕಾರಿ ತಂತ್ರವಾಗಿದೆ. ಸಾಧ್ಯವಾದರೆ ಚಿಕ್ಕ ಸ್ಟ್ರಿಂಗ್ ಪ್ರಾತಿನಿಧ್ಯಗಳನ್ನು ಬಳಸುವುದು ಮತ್ತೊಂದು ವಿಧಾನವಾಗಿದೆ.
ಉದಾಹರಣೆ: ಸ್ಟ್ರಿಂಗ್ ಉದ್ದವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು
ಕಾಲಮ್ ಸ್ಟ್ರಿಂಗ್ಗಳಾಗಿ ಸಂಗ್ರಹಿಸಲಾದ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಆದರೆ ಅವುಗಳನ್ನು ಪೂರ್ಣಾಂಕಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸಬಹುದಾದರೆ, ಅವುಗಳನ್ನು ಪೂರ್ಣಾಂಕಗಳಾಗಿ ಪರಿವರ್ತಿಸುವುದು ಮೆಮೊರಿಯನ್ನು ಉಳಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಪ್ರಸ್ತುತ "PROD-1234" ನಂತಹ ಸ್ಟ್ರಿಂಗ್ಗಳಾಗಿ ಸಂಗ್ರಹಿಸಲಾದ ಉತ್ಪನ್ನ ID ಗಳನ್ನು ಪೂರ್ಣಾಂಕ ID ಗಳಿಗೆ ಮ್ಯಾಪ್ ಮಾಡಬಹುದು.
7. ಮೆಮೊರಿಗಿಂತ ದೊಡ್ಡದಾದ ದತ್ತಾಂಶಗಳಿಗಾಗಿ Dask ಅನ್ನು ಬಳಸುವುದು
ದತ್ತಾಂಶಗಳು ಮೆಮೊರಿಗೆ ಹೊಂದಿಕೆಯಾಗಲು ತುಂಬಾ ದೊಡ್ಡದಾಗಿದ್ದರೆ, ಚಂಕಿಂಗ್ನೊಂದಿಗೆ ಸಹ, Dask ಅನ್ನು ಬಳಸಲು ಪರಿಗಣಿಸಿ. Dask ಒಂದು ಸಮಾನಾಂತರ ಕಂಪ್ಯೂಟಿಂಗ್ ಲೈಬ್ರರಿಯಾಗಿದ್ದು ಅದು Pandas ಮತ್ತು NumPy ನೊಂದಿಗೆ ಉತ್ತಮವಾಗಿ ಸಂಯೋಜನೆಗೊಳ್ಳುತ್ತದೆ. ಇದು ದೊಡ್ಡ-ಮೆಮೊರಿ ದತ್ತಾಂಶಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಅವುಗಳನ್ನು ಚಿಕ್ಕ ತುಣುಕುಗಳಾಗಿ ವಿಭಜಿಸುವ ಮೂಲಕ ಮತ್ತು ಅವುಗಳನ್ನು ಬಹು ಕೋರ್ಗಳಲ್ಲಿ ಅಥವಾ ಬಹು ಯಂತ್ರಗಳಲ್ಲಿ ಸಮಾನಾಂತರವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಮೂಲಕ.
import dask.dataframe as dd
ddf = dd.read_csv('large_dataset.csv')
# Perform operations on the Dask DataFrame (e.g., filtering, aggregation)
result = ddf[ddf['col1'] > 10].groupby('col2').mean().compute()
compute() ವಿಧಾನವು ನಿಜವಾದ ಕಂಪ್ಯೂಟೇಶನ್ ಅನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಒಳಗೊಂಡಿರುವ Pandas ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ.
ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು ಮತ್ತು ಪರಿಗಣನೆಗಳು
- ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಿ: ಮೆಮೊರಿ ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಲು ಪ್ರೊಫೈಲಿಂಗ್ ಪರಿಕರಗಳನ್ನು ಬಳಸಿ ಮತ್ತು ನಿಮ್ಮ ಆಪ್ಟಿಮೈಸೇಶನ್ ಪ್ರಯತ್ನಗಳನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಪ್ರದೇಶಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿ.
- ವಿವಿಧ ತಂತ್ರಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ: ಸೂಕ್ತವಾದ ಮೆಮೊರಿ ಕಡಿತ ತಂತ್ರವು ನಿಮ್ಮ ದತ್ತಾಂಶದ ನಿರ್ದಿಷ್ಟ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ನಿಮ್ಮ ಬಳಕೆಯ ಪ್ರಕರಣಕ್ಕೆ ಉತ್ತಮ ಪರಿಹಾರವನ್ನು ಹುಡುಕಲು ವಿವಿಧ ವಿಧಾನಗಳೊಂದಿಗೆ ಪ್ರಯೋಗಿಸಿ.
- ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ: ನಿಮ್ಮ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು ಪರಿಣಾಮಕಾರಿಯಾಗಿವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ಮೆಮೊರಿ ದೋಷಗಳನ್ನು ತಡೆಯಲು ದತ್ತಾಂಶ ಸಂಸ್ಕರಣೆಯ ಸಮಯದಲ್ಲಿ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ.
- ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ: ಸೂಕ್ತವಾದ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳು ಮತ್ತು ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಿಮ್ಮ ಡೇಟಾದ ಆಳವಾದ ತಿಳುವಳಿಕೆ ಬಹಳ ಮುಖ್ಯ.
- ವ್ಯಾಪಾರ-ಆಫ್ಗಳನ್ನು ಪರಿಗಣಿಸಿ: ಕೆಲವು ಮೆಮೊರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳು ಸ್ವಲ್ಪ ಕಾರ್ಯಕ್ಷಮತೆಯ ಓವರ್ಹೆಡ್ ಅನ್ನು ಪರಿಚಯಿಸಬಹುದು. ಸಂಭಾವ್ಯ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪರಿಣಾಮದ ವಿರುದ್ಧ ಕಡಿಮೆ ಮೆಮೊರಿ ಬಳಕೆಯ ಪ್ರಯೋಜನಗಳನ್ನು ಅಳೆಯಿರಿ.
- ನಿಮ್ಮ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ದಾಖಲಿಸಿ: ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸಬಲ್ಲದು ಮತ್ತು ಇತರರಿಗೆ ಅರ್ಥವಾಗುವಂತೆ ಮಾಡಲು ನೀವು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಮೆಮೊರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ದಾಖಲಿಸಿ.
ತೀರ್ಮಾನ
ದೊಡ್ಡ ದತ್ತಾಂಶಗಳೊಂದಿಗೆ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲು ಪಾಂಡಾಸ್ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದು ಅತ್ಯಗತ್ಯ. ಪಾಂಡಾಸ್ ಡೇಟಾವನ್ನು ಹೇಗೆ ಸಂಗ್ರಹಿಸುತ್ತದೆ, ಸರಿಯಾದ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು, ಚಂಕಿಂಗ್ ಅನ್ನು ಬಳಸುವುದು ಮತ್ತು ಇತರ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವುದು ಹೇಗೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ, ನೀವು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆ ಕಾರ್ಯವಿಧಾನಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಬಹುದು. ಈ ಮಾರ್ಗದರ್ಶಿ ಪಾಂಡಾಸ್ನಲ್ಲಿ ಮೆಮೊರಿ ಬಳಕೆಯ ಕಡಿತವನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಮುಖ ತಂತ್ರಗಳು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳ ಸಮಗ್ರ ಅವಲೋಕನವನ್ನು ಒದಗಿಸಿದೆ. ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಲು, ವಿವಿಧ ತಂತ್ರಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಬಳಕೆಯ ಪ್ರಕರಣಕ್ಕೆ ಉತ್ತಮ ಫಲಿತಾಂಶಗಳನ್ನು ಸಾಧಿಸಲು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಮರೆಯದಿರಿ. ಈ ತತ್ವಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ, ನೀವು ಪಾಂಡಾಸ್ನ ಸಂಪೂರ್ಣ ಸಾಮರ್ಥ್ಯವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು ಹೆಚ್ಚು ಬೇಡಿಕೆಯಿರುವ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆ ಸವಾಲುಗಳನ್ನು ಸಹ ನಿಭಾಯಿಸಬಹುದು.
ಈ ತಂತ್ರಗಳನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ, ಪ್ರಪಂಚದಾದ್ಯಂತದ ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳು ಮತ್ತು ವಿಶ್ಲೇಷಕರು ದೊಡ್ಡ ದತ್ತಾಂಶಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದು, ಸಂಸ್ಕರಣಾ ವೇಗವನ್ನು ಸುಧಾರಿಸಬಹುದು ಮತ್ತು ಅವರ ಡೇಟಾದಿಂದ ಆಳವಾದ ಒಳನೋಟಗಳನ್ನು ಪಡೆಯಬಹುದು. ಇದು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಸಂಶೋಧನೆಗೆ, ಉತ್ತಮ ತಿಳುವಳಿಕೆಯುಳ್ಳ ವ್ಯವಹಾರ ನಿರ್ಧಾರಗಳಿಗೆ ಮತ್ತು ಅಂತಿಮವಾಗಿ, ಹೆಚ್ಚು ಡೇಟಾ-ಚಾಲಿತ ಜಗತ್ತಿಗೆ ಕೊಡುಗೆ ನೀಡುತ್ತದೆ.