簡體   English   中英

將一列中的值替換為另一列中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM