gpt4 book ai didi

python - 将数据框中的所有列移动到末端替换所有 nan

转载 作者:行者123 更新时间:2023-11-28 18:38:52 25 4
gpt4 key购买 nike

我需要将以下数据框中的所有单独列移到最末端。 shift 函数中是否有任何开关可以做到这一点?

df = pd.DataFrame([[11,22,33,44,55], [nan,44,55], [nan,33,44,55], [11,22]]).T

输入

11  NaN NaN 11
22 44 33 22
33 55 44 NaN
44 NaN 55 NaN
55 NaN NaN NaN

输出

11  NaN NaN NaN
22 NaN NaN NaN
33 NaN 33 NaN
44 44 44 11
55 55 55 22

编辑:我的看法是所有列都是独立的,需要区别对待。向下推时,一旦我得到非 NAN 值,我就需要停止。

我试图通过首先将数据帧转换为列表列表,然后插入 nans,最后再转换回数据帧来实现这一点。

最佳答案

您可以遍历每个列,获取最后一个有效值的索引位置,然后移动 df 的长度减去该索引位置,因为索引是基于 0 的,您需要偏移 1:

In [33]:

for col in df:
idx = df.loc[df[col].notnull(),col].index[-1]
df[col] = df[col].shift(len(df) - (idx + 1))
df
Out[33]:
0 1 2 3
0 11 NaN NaN NaN
1 22 NaN NaN NaN
2 33 NaN 33 NaN
3 44 44 44 11
4 55 55 55 22

关于python - 将数据框中的所有列移动到末端替换所有 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522696/

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