2017-07-17 3 views
0

に基づいて列の値を置き換えます。使用して他の列

HS Tp 
3.0 12.0 
2.0 11.3 
nan 19.2 
nan 5.9 
5.6 7.0 

目的は「「に基づいてTpを「」列」の値を交換することである。

import pandas as pd 
import numpy as np 
a = pd.read_csv('Bvitoria_argos.csv', na_values=[' -99999.0']) 

データフレームは、そのようなものです「HS」」の値とそのような何かを得る:私はこれを使用しようとしたが、それは働いていない

HS Tp 
3.0 12.0 
2.0 11.3 
nan nan 
nan nan 
5.6 7.0 

を:

c.loc[c.HS==np.nan,'Tp']=np.nan 

「HS」列「Tp」列が「nan」である必要がある場合は、より具体的には、誰かが助けることができれば感謝します。

答えて

1

使用isnull()

df.loc[df['HS'].isnull(),'Tp'] = np.nan 
+0

ありがとうございます。なぜ私のコードc.loc [c.HS == np.nan、 'Tp'] = np.nanは機能しませんでしたか? –

+0

np.nan == np.nanがFalseに解決された場合、isnull()を使用する必要があります。 –

+0

ありがとうございます(これを使用する必要がある場合はもう少し質問してください。 HSが5よりも高い場合、Tpにnanを設定します。これはどのように書くことができますか? –

0

あなたはnp.whereを使用することができます。 condがブール配列であり、そしてAおよびBが配列されている場合、

C = np.where(cond, A, B) 

Cはcondが真であり、そしてB condが偽である場合、Aに等しくなるように定義します。

Compare Indexing where condition.

関連する問題