![](/img/trans.png)
[英]Conditionally replacing values in one DataFrame column with values from another column
[英]Replacing values in one column with values in another column
我導入了數據集,但“血小板”列中的某些值被添加到名為“ 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]
只需使用fillna方法即可:
data['platelet'] = data['platelet'].fillna(data['X'])
這將用X列中的相應值填充data ['platelet']中的NA值。
最有可能與您的數據有關,因為當我模擬您的方案時,它可以很好地工作。
嘗試在迭代之前以及在迭代之間添加數據的打印語句。
同樣for i in range(0, N-1):
中for i in range(N):
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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.