प्रयास करें:
import numpy as np
import pandas as pd
# Sample 100 rows of data to determine dtypes.
df_test = pd.read_csv(filename, nrows=100)
float_cols = [c for c in df_test if df_test[c].dtype == "float64"]
float32_cols = {c: np.float32 for c in float_cols}
df = pd.read_csv(filename, engine='c', dtype=float32_cols)
यह पहला प्रत्येक स्तंभ के प्रकार का निर्धारण करने के लिए डेटा की 100 पंक्तियों का नमूना पढ़ता है (के रूप में आवश्यक बदलाव करें)।
यह उन कॉलमों की एक सूची बनाता है जो 'float64' हैं, और फिर इन कॉलम के साथ कुंजीपटल और 'np.float32' के रूप में प्रत्येक कुंजी के मान के रूप में शब्दकोश बनाने के लिए शब्दकोश समझ का उपयोग करता है।
अंत में, यह 'सी' इंजन (स्तंभों के लिए dtypes असाइन करने के लिए आवश्यक) का उपयोग कर पूरी फ़ाइल पढ़ता है और फिर flat32_cols शब्दकोश को टाइप करने के लिए पैरामीटर के रूप में पास करता है।
df = pd.read_csv(filename, nrows=100)
>>> df
int_col float1 string_col float2
0 1 1.2 a 2.2
1 2 1.3 b 3.3
2 3 1.4 c 4.4
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 3 entries, 0 to 2
Data columns (total 4 columns):
int_col 3 non-null int64
float1 3 non-null float64
string_col 3 non-null object
float2 3 non-null float64
dtypes: float64(2), int64(1), object(1)
df32 = pd.read_csv(filename, engine='c', dtype={c: np.float32 for c in float_cols})
>>> df32.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 3 entries, 0 to 2
Data columns (total 4 columns):
int_col 3 non-null int64
float1 3 non-null float32
string_col 3 non-null object
float2 3 non-null float32
dtypes: float32(2), int64(1), object(1)