小编mon*_*lio的帖子

使用NaN基于同一列中的其他值替换列中的值

这是标题中的特殊问题.

我有以下数据框:

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)

python dataframe pandas

3
推荐指数
1
解决办法
113
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1