gpt4 book ai didi

pandas - 在数据框中移动列

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

我有一个 Pandas 数据框:

Date    normPwr_0   normPwr_1   tempNorm_1  tempNorm_2  tempNorm_3  tempNorm_0
6/15/2019 0.89 0.94 0.83 0.88 0.92 0.82
6/16/2019 0.97 0.89 0.82 0.83 0.88 0.97
6/17/2019 0.97 0.97 0.97 0.82 0.83 2,188.18

我只想移动 tempNorm 列的列值。我想要的输出是:

Date    normPwr_0   normPwr_1   tempNorm_2  tempNorm_3  tempNorm_1
6/15/2019 0.89 0.94 0.83 0.88 0.82
6/16/2019 0.97 0.89 0.82 0.83 0.97
6/17/2019 0.97 0.97 0.97 0.82 2,188.18

棘手的部分是 tempNorm 的列名称各不相同,因此有时我有 [tempNorm_1 tempNorm_2 tempNorm_3 tempNorm_0] 而其他时候我有[tempNorm_4 tempNorm_5 tempNorm_6 tempNorm_7 tempNorm_0]

当列具有 [tempNorm_4 tempNorm_5 tempNorm_6 tempNorm_7 tempNorm_0] 时,我在输出数据框中所需的列将是 [tempNorm_4 tempNorm_5 tempNorm_6 tempNorm_7]

基本上,我试图在包含 tempNorm 的列名称中移动数据框,其中 tempNorm_0 中的所有值都被插入下一个更高命名的列,并且最高命名的列被丢弃.

我不知道如何以一种干净的 Python 方式解决这个问题。

编辑:

对于 [tempNorm_4 tempNorm_5 tempNorm_6 tempNorm_7 tempNorm_0],来自 tempNorm_0 的值被移入 tempNorm_4 ;来自 tempNorm_4 的值 被移入 tempNorm_5 等等。 tempNorm_7 数据被丢弃并被 tempNorm_6

中的数据替换

最佳答案

排序过滤重命名

a, b, *c = sorted(df.filter(like='tempNorm'), key=lambda c: int(c.rsplit('_', 1)[1]))
df.drop(b, 1).rename(columns={a: b})

Date normPwr_0 normPwr_1 tempNorm_2 tempNorm_3 tempNorm_1
0 6/15/2019 0.89 0.94 0.88 0.92 0.82
1 6/16/2019 0.97 0.89 0.83 0.88 0.97
2 6/17/2019 0.97 0.97 0.82 0.83 2,188.18

关于pandas - 在数据框中移动列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56635560/

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