我正在尝试合并HomeCredit Kaggle competion according to the data schema中的两个数据帧。 我做了以下事情:
train = pd.read_csv('~/Documents/HomeCredit/application_train.csv')
bureau = pd.read_csv('~/Documents/HomeCredit/bureau.csv')
bureau_balance = pd.read_csv('~/Documents/HomeCredit/bureau_balance.csv')
train = train.merge(bureau,how='outer',left_on=['SK_ID_CURR'],right_on=['SK_ID_CURR'])
train = train.merge(bureau_balance,how='inner',left_on=['SK_ID_BUREAU'],right_on=['SK_ID_BUREAU'])
失败于
MemoryError
第二次合并。 火车数据帧的形状为(308k,122),局(1.72M,12)和局余额(27.3M,3)。据我了解,train df的应用程序不必在burea表中有记录,但是该表中的所有行都应该在Bureau_balance中有记录。
我正在具有16GB RAM的本地实例上运行代码。
有没有办法解决这么大的数据集的内存问题?
谢谢。
答案 0 :(得分:1)
在遇到一定问题后,熊猫不是合适的工具。我将数据导入关系数据库中并发出SQL查询。 Sqlalchemy是用于处理数据库的一个不错的python工具。