使用字典值替换稀疏数据帧中的值的快速方法

时间:2018-01-03 11:36:51

标签: python pandas

我有一个非常稀疏的数据框df,例如:

       Apples Bananas Pineapple Mango
Mary   Apples     NaN       NaN   NaN
Jane      NaN Bananas       NaN   NaN
Diego     NaN     NaN       NaN Mango
Guido     NaN     NaN Pineapple   NaN

我想建立一个字典d,例如

d = {'Apples':3, 'Bananas':1, 'Pineapple':2, 'Mango': 15}

获取

       Apples Bananas Pineapple Mango
Mary        3     NaN       NaN   NaN
Jane      NaN       1       NaN   NaN
Diego     NaN     NaN       NaN    15
Guido     NaN     NaN         2   NaN

我能做到

df.to_sparse().replace(d)

但它已超过30'并且还没有输出。我的数据帧有10000行乘以1500列,数据帧最初为135MB,在to_sparse()之后变为850kB。有没有更快的方法?

1 个答案:

答案 0 :(得分:1)

通过更改问题进行修改 - 您可以second = "0"使用stack Series - {MultiIndex s值被删除) - map然后重新塑造unstack

NaN