gpt4 book ai didi

python - 如何根据特定列在 Pandas Dataframe 中向上移动行

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:06 26 4
gpt4 key购买 nike

如何在不影响其他列顺序的情况下,将某一特定列的一行中的所有值向上移动?

例如,假设我有以下代码:

import pandas as pd
data= {'ColA':["A","B","C"],
'ColB':[0,1,2],
'ColC':["First","Second","Third"]}

df = pd.DataFrame(data)

print(df)

我会看到以下输出:

  ColA  ColB    ColC
0 A 0 First
1 B 1 Second
2 C 2 Third

在我的例子中,我想验证 B 列没有任何 0,如果有,它被删除,它下面的所有其他值被推高,其他列的顺序不受影响。据推测,我会看到以下内容:

  ColA  ColB    ColC
0 A 1 First
1 B 2 Second
2 C NaN Third

我不知道如何使用 drop() 或 shift() 方法来做到这一点。

谢谢

最佳答案

让我们做简单的排序

invalid=0
df['ColX']=sorted(df.ColB,key=lambda x : x==invalid)
df.ColX=df.ColX.mask(df.ColX==invalid)
df
Out[351]:
ColA ColB ColC ColX
0 A 0 First 1.0
1 B 1 Second 2.0
2 C 2 Third NaN

关于python - 如何根据特定列在 Pandas Dataframe 中向上移动行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58920156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com