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”作为每个键的值。
最后,它使用“c”引擎读取整个文件(为列分配dtype所必需),然后将float32\u cols字典作为参数传递给dtype。
@亚历山大的回答很好。某些列可能需要精确。如果是这样,您可能需要在列表理解中添加更多条件来排除某些列内置的
any
或all
很方便:相关问题 更多 >
编程相关推荐