gpt4 book ai didi

python - 如何将 Nan 值移动到所有列的末尾

转载 作者:行者123 更新时间:2023-12-01 01:33:13 25 4
gpt4 key购买 nike

我有一个这样的 df,

A     B     C
a NaN NaN
b NaN NaN
c NaN NaN
NaN a NaN
NaN b NaN
NaN c NaN
NaN NaN a
NaN NaN b
NaN NaN c

所需的输出,

A   B   C
a a a
b b b
c c c
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN

最佳答案

您可以创建一个 bool 掩码,然后使用 argsort 对 bool 掩码进行排序,并为最终数组建立索引:

A = df.isnull().values

out = df.values[np.argsort(A, axis=0, kind='mergesort'), np.arange(A.shape[1])]

array([['a', 'a', 'a'],
['b', 'b', 'b'],
['c', 'c', 'c'],
[nan, nan, nan],
[nan, nan, nan],
[nan, nan, nan],
[nan, nan, nan],
[nan, nan, nan],
[nan, nan, nan]], dtype=object)

并重新创建 DataFrame:

pd.DataFrame(out, columns=df.columns)

     A    B    C
0 a a a
1 b b b
2 c c c
3 NaN NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN
6 NaN NaN NaN
7 NaN NaN NaN
8 NaN NaN NaN

关于python - 如何将 Nan 值移动到所有列的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621834/

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