我有一个这样的数据框:
POLY_KEY_I SP1 SP2
0 FS01080100SM001 POAPRA TOXRYD
1 FS01080100SM001 NaN NaN
2 FS01080100SM001 OXRYD SYMOCC
3 FS01080100SM001 EUPESU POAPRA
4 FS01080100SM001 BOUGRA KOEPYR
5 FS01080100SM002 POAPRA EUPESU
6 FS01080100SM002 POAPRA NaN
7 FS01080100SM002 POAPRA KOEPYR
我只想在
NaN
中有一个非SP2
值时替换NaN
中的SP1
。如果发生这种情况,我想用SP1
中的值替换它。我想要的结果是: POLY_KEY_I SP1 SP2
0 FS01080100SM001 POAPRA TOXRYD
1 FS01080100SM001 NaN NaN
2 FS01080100SM001 OXRYD SYMOCC
3 FS01080100SM001 EUPESU POAPRA
4 FS01080100SM001 BOUGRA KOEPYR
5 FS01080100SM002 POAPRA EUPESU
6 FS01080100SM002 POAPRA POAPRA
7 FS01080100SM002 POAPRA KOEPYR
SP1
中有大约100个唯一的值,所以我不能手动执行,因为我不总是知道SP1
中的字符串是什么。编辑:
另一个对我有用的方法是说如果
SP2
=NaN
返回SP1
中的值我试过这段代码,但它给出了字符串SP1(显然),我不确定如何返回实际值。代码如下:
def f(x):
if x['SP2'] == 'NaN' : return 'SP1'
df['SP2'] = df.apply(f, axis=1)
print df
最佳答案
怎么了?
df['SP2'][pandas.isnull(df['SP2'])] = df['SP1']
在SP1和SP2都是NaN的情况下,也可以复制NaN
关于python - 根据条件替换列中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34056738/