我有以下数据,我存储在一个csv(df_示例.csv). 我在列表中列出了一个列。在
数据示例:
df_data_sample = pd.DataFrame({
'new_video':['BASE','SHIVER','PREFER','BASE+','BASE+','EVAL','EVAL','PREFER','ECON','EVAL'],
'ord_m1':[0,1,1,0,0,0,1,0,1,0],
'rev_m1':[0,0,25.26,0,0,9.91,'NA',0,0,0],
'equip_m1':[0,0,0,'NA',24.9,20,76.71,57.21,0,12.86],
'oev_m1':[3.75,8.81,9.95,9.8,0,0,'NA',10,56.79,30],
'irev_m1':['NA',19.95,0,0,4.95,0,0,29.95,'NA',13.95]
})
attribute_dict = {
'new_video': 'CAT',
'ord_m1':'NUM',
'rev_m1':'NUM',
'equip_m1':'NUM',
'oev_m1':'NUM',
'irev_m1':'NUM'
}
然后我阅读了每一列,并进行了如下数据处理:
^{pr2}$attribute-dict是一个字典,它包含变量名:变量类型映射为:
{
'new_video': 'CAT'
'ord_m1':'NUM'
'rev_m1':'NUM'
'equip_m1':'NUM'
'oev_m1':'NUM'
'irev_m1':'NUM'
}
但是,这种逐列操作在大小为**(500万行*3400列)**的数据集上运行需要很长时间。目前运行时间大约为 12小时以上。 我希望尽可能减少这一点,我可以想到的一种方法是一次处理所有NUM列,然后逐个列处理 对于CAT变量。 然而,我既不确定Python中的代码能否实现这一点,也不确定这是否真的能加快进程。 有人能帮帮我吗!在
对于数值列,它很简单:
但第一部分代码是性能问题,尤其是在为} 中:
^{pr2}$5 million rows
调用的^{不幸的是,在块中存在问题进程
get_dummies
。在我有三点建议你加快计算速度:
另外,来自pandas on large data workflow作者的answer可能对您很感兴趣。在
相关问题 更多 >
编程相关推荐