gpt4 book ai didi

python - 移动 pandas 数据框中的列会将数据设置为 NaN

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:34 24 4
gpt4 key购买 nike

我尝试移动数据框中的列,在找到shift方法之前,我尝试自己做。我发现了一些有趣的东西。

这是代码

创建数据框:

df = pd.DataFrame(np.random.randn(5,3))

这是数据:

          0         1         2
0 -0.274583 0.141030 1.335455
1 -0.887131 -1.253900 0.395358
2 -0.194082 -0.462745 -0.237422
3 0.095535 0.236268 -1.347387
4 2.210129 -0.816895 -1.225560

如果我这样做将最后一列向上移动 2 行:

df.loc[0:2,2] = df.loc[2:,2]

结果是,前两行是 NaN

          0         1         2
0 -0.274583 0.141030 NaN
1 -0.887131 -1.253900 NaN
2 -0.194082 -0.462745 -0.237422
3 0.095535 0.236268 -1.347387
4 2.210129 -0.816895 -1.225560

这里有什么问题吗?

最佳答案

似乎需要将输出转换为numpy数组,以防止按索引对齐:

df.loc[0:2,2] = df.loc[2:,2].values
print (df)
0 1 2
0 -0.274583 0.141030 -0.237422
1 -0.887131 -1.253900 -1.347387
2 -0.194082 -0.462745 -1.225560
3 0.095535 0.236268 -1.347387
4 2.210129 -0.816895 -1.225560

解释为什么您的解决方案不起作用:

输出按索引对齐,因此如果 0,1 索引不存在,则添加 NaNs:

print (df.loc[2:,2])
2 -0.237422
3 -1.347387
4 -1.225560
Name: 2, dtype: float64

关于python - 移动 pandas 数据框中的列会将数据设置为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49145633/

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