我的输入数据框为
ID Visit11 Visit12 Visit13 Visit1Int4 Visit15
1 Orange
2 Orange Apple
3 Grapes
4 Apple
5 Orange Apple
6 Apple
7 Banana
8 Banana Apple Banana Apple Banana
我想用“退出”填充每一行的第一个NA(ID 1的SO,Visit12应该是“ Exit”,ID2的Visit13应该是“ Exit”,等等)。最终输出应类似于
ID Visit11 Visit12 Visit13 Visit1Int4 Visit15
1 Orange Exit
2 Orange Apple Exit
3 Grapes Exit
4 Apple Exit
5 Orange Apple Exit
6 Apple Exit
7 Banana Exit
8 Banana Apple Banana Apple Banana E
答案 0 :(得分:4)
您可以先用np.nan
替换空值,然后选择DataFrame.isna
的cumsum
。然后使用np.where
分配Exit
,其中cumsum
是1
,否则分配df
中的值:
import numpy as np
m = df.replace('',np.nan).isna().cumsum(axis=1)
r = np.where(m == 1, 'Exit', df)
pd.DataFrame(r, columns=df.columns).fillna('')
ID Visit11 Visit12 Visit13 Visit1Int4 Visit15
0 1 Orange Exit
1 2 Orange Apple Exit
2 3 Grapes Exit
3 4 Apple Exit
4 5 Orange Apple Exit
5 6 Apple Exit
6 7 Banana Exit
7 8 Banana Apple Banana Apple Banana