gpt4 book ai didi

python - 在可变长度数据帧上使用 .sub() ?

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:45 26 4
gpt4 key购买 nike

我需要计算数据帧中的一个静态列与构成数据帧其余部分的一些可变数量的列之间的差异。

我的数据如下所示:

School District | 01-01-2017 | 01-02-2017 |...| 02-01-2017 | BaseData |
District A | 1 | 5 |...| 3 | 1 |
District B | 2 | 4 |...| 3 | 2 |
District C | 3 | 3 |...| 3 | 3 |
District D | 4 | 2 |...| 3 | 4 |

我想从其他以日期为标题的列中减去“BaseData”,这样最终的表格将如下所示:

School District | 01-01-2017 | 01-02-2017 |...| 02-01-2017 | BaseData |
District A | 0 | -4 |...| -2 | 0 |
District B | 0 | -2 |...| -1 | 0 |
District C | 0 | 0 |...| 0 | 0 |
District D | 0 | 2 |...| 1 | 0 |

“学区”和“基础数据”之间的列数是可变的。我尝试使用 finaltable = basetable[[1:-1]].sub(basetable['BaseData'], axis=0)但似乎[1:-1]不起作用(引发语法错误)。我知道我可以使用 [1, 2, 3, etc.] 返回任意数量的预选列,但表中的日期是动态的,并且可以有任意数量。

最佳答案

我认为你需要iloc按位置选择:

df.iloc[:, 1:] = df.iloc[:, 1:].sub(df['BaseData'], axis=0)
print (df)
School District 01-01-2017 01-02-2017 02-01-2017 BaseData
0 District A 0 4 2 0
1 District B 0 2 1 0
2 District C 0 0 0 0
3 District D 0 -2 -1 0

或者:

df.iloc[:, 1:-1] = df.iloc[:, 1:-1].sub(df['BaseData'], axis=0)
print (df)
School District 01-01-2017 01-02-2017 02-01-2017 BaseData
0 District A 0 4 2 1
1 District B 0 2 1 2
2 District C 0 0 0 3
3 District D 0 -2 -1 4

关于python - 在可变长度数据帧上使用 .sub() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44684437/

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