我有一个输入数据框
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
我想用“Exit”填充每行的第一个 NA(所以对于 ID 1,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
最佳答案
您可以先用 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
关于python - 在每行中填充第一个 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54981150/