这是标题中的特殊问题.
我有以下数据框:
values = [[100,54,25,26,32,33,15,2],[1,2,3,4,5,6,7,8]]
columns = ["numbers", "order"]
zipped = dict(zip(columns,values))
df = pd.DataFrame(zipped)
print(df)
numbers order
0 100 1
1 54 2
2 25 3
3 26 4
4 32 5
5 33 6
6 15 7
7 2 8
Run Code Online (Sandbox Code Playgroud)
想象一下,数据框按列顺序递增排序.在列号中,如果行中存在更大的值,我想用NaN替换值,并获得以下结果:
numbers order
0 100 1
1 54 2
2 NaN 3
3 NaN 4
4 NaN 5
5 33 6
6 15 7
7 2 8
Run Code Online (Sandbox Code Playgroud)
没有经过循环,实现它的最佳方法是什么?
更新:初始DF和预期结果可能是更好的示例(添加要替换的不连续值块):
values = [[100,54,25,26,34,32,31,33,15,2],[1,2,3,4,5,6,7,8,9,10]]
numbers …Run Code Online (Sandbox Code Playgroud)