gpt4 book ai didi

python - pandas .diff() 但使用第一个单元格作为前一列中最后一个单元格之间的差异

转载 作者:行者123 更新时间:2023-12-02 16:15:25 24 4
gpt4 key购买 nike

假设我有一个以下格式的 df:

year        2016  2017  2018  2019  2020  min  max    avg
month
2021-01-01 284 288 311 383 476 284 476 357.4
2021-02-01 301 315 330 388 441 301 441 359.6
2021-03-01 303 331 341 400 475 303 475 375.4
2021-04-01 283 300 339 419 492 283 492 372.6
2021-05-01 287 288 346 420 445 287 445 359.7
2021-06-01 283 292 340 424 446 283 446 359.1
2021-07-01 294 296 360 444 452 294 452 370.3
2021-08-01 294 315 381 445 451 294 451 375.9
2021-09-01 288 331 405 464 459 288 464 385.6
2021-10-01 327 349 424 457 453 327 457 399.1
2021-11-01 316 351 413 469 471 316 471 401.0
2021-12-01 259 329 384 467 465 259 467 375.7

我想通过使用 df['delta'] = df['2020'].diff()

获得 2020 列的差异

对于列中的第一个值,这显然会返回 NaN。我怎样才能让它自动将差异解释为 2020 年的第一个值和 2019 年的最后一个值之间的差异?

最佳答案

如果您只想要 2020 年:

df["delta"] = pd.concat([df["2019"], df["2020"]]).diff().tail(len(df))

打印:

          year  2016  2017  2018  2019  2020  min  max    avg  delta
0 2021-01-01 284 288 311 383 476 284 476 357.4 9.0
1 2021-02-01 301 315 330 388 441 301 441 359.6 -35.0
2 2021-03-01 303 331 341 400 475 303 475 375.4 34.0
3 2021-04-01 283 300 339 419 492 283 492 372.6 17.0
4 2021-05-01 287 288 346 420 445 287 445 359.7 -47.0
5 2021-06-01 283 292 340 424 446 283 446 359.1 1.0
6 2021-07-01 294 296 360 444 452 294 452 370.3 6.0
7 2021-08-01 294 315 381 445 451 294 451 375.9 -1.0
8 2021-09-01 288 331 405 464 459 288 464 385.6 8.0
9 2021-10-01 327 349 424 457 453 327 457 399.1 -6.0
10 2021-11-01 316 351 413 469 471 316 471 401.0 18.0
11 2021-12-01 259 329 384 467 465 259 467 375.7 -6.0

关于python - pandas .diff() 但使用第一个单元格作为前一列中最后一个单元格之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66893732/

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