为了账号安全,请及时绑定邮箱和手机立即绑定

无法将['']替换为DataFrame上的方法垫

无法将['']替换为DataFrame上的方法垫

aluckdog 2021-04-12 16:19:41
运行python2.7问题1我想在数据框“ test”中将空字符串“”替换为“ None”:    from numpy.random import randn    test = pd.DataFrame(randn(3,2))    test.iloc[0,0]=''    test.replace('', None)给我错误TypeError:无法将['']替换为DataFrame上的方法垫。什么地方出了错?问题2:从numpy.random导入randntest = pd.DataFrame(randn(3,2))# this workstest.iloc[0,1]= 'A'test[1] = test[1].replace('A','b')# this does nottest.iloc[0,0]=''test.loc[0] = test[0].replace('', None)test           0         10                   b1  0.042052  -1.441562  0.462131 -0.303288我期待着test           0         10    None           b1  0.042052  -1.441562  0.462131 -0.303288
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

没有人会被解释为缺乏论据。尝试:

test.replace({'':None})

问题2:

test.where(test != '', None)


查看完整回答
反对 回复 2021-04-20
?
UYOU

TA贡献1878条经验 获得超4个赞

只需使用非数字即可。熊猫无论如何都会将您None转换为非数字*。其次,不要忘记将结果分配给新变量或将inplace参数设置为True。test.replace('', np.NaN)自己什么也不做。


import pandas as pd

import numpy as np

from numpy.random import randn

test = pd.DataFrame(randn(3,2))

test.iloc[0,0]=''

test = test.replace('', np.NaN)

*当所有数据具有相同的数据类型时,Pandas效果最佳,效率最高。在您的情况下为numpy.float64。np.NaN也是一个numpy的浮点数。如果要None在数据框中使用,则所有内容都需要存储为object效率较低的数据类型。np.NaN可能正是您所需要的。


查看完整回答
反对 回复 2021-04-20
  • 2 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信