我导入了一个数据集,但是“血小板”列中的某些值被添加到名为“ X”的新列中,而在“血小板”列中保留了NaN。
我想遍历血小板列中的每个条目,当我遇到NaN值时,我想用“ X”列中的值替换该值。这是我在下面尝试的(类似的东西在R中工作得很好)。
我不知道我在做什么错。我收到一条错误消息:
TypeError Traceback (most recent call last)
< ipython-input-2520-414f4874fae7 > in < module >()
3 import math
4
----> 5 for i in range(0, N-1):
6 if math.isnan(data['platelet'][i]):
7 data['platelet'][i] = data['X'][i]
TypeError: 'Series' object is not callable
N = len(data['platelet'])
import math
for i in range(0, N-1):
if math.isnan(data['platelet'][i]):
data['platelet'][i] = data['X'][i]
答案 0 :(得分:3)
只需使用fillna方法即可:
data['platelet'] = data['platelet'].fillna(data['X'])
这将用X列中的相应值填充data ['platelet']中的NA值。
答案 1 :(得分:0)
最有可能与您的数据有关,因为当我模拟您的方案时,它可以很好地工作。
尝试在迭代之前以及迭代之间添加数据的打印语句。
还需要将for i in range(0, N-1):
更改为for i in range(N):
。使用N-1
将跳过最后一次迭代。也不需要0
。
data = {}
data['platelet'] = [float('nan'),float('nan'),float('nan'),float('nan'),float('nan')]
data['X'] = [1,2,3,4,5]
N = len(data['platelet'])
import math
for i in range(N):
if math.isnan(data['platelet'][i]):
data['platelet'][i] = data['X'][i]