根据其他列替换列中的值

时间:2017-07-17 13:51:00

标签: python pandas

使用:

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

数据框是这样的:

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

目标是根据''HS''值替换''Tp'列中的值,得到类似的结果:

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需要为nan时。如果有人可以提供帮助,我将感激不尽。

2 个答案:

答案 0 :(得分:1)

使用isnull()

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

答案 1 :(得分:0)

你可以使用np.where。如果cond是布尔数组,而A和B是数组,那么

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

将C定义为等于A,其中cond为True,B为cond为False。

Compare Indexing where condition.