gpt4 book ai didi

python - hub_table 没有给出预期的结果

转载 作者:行者123 更新时间:2023-12-01 00:35:56 25 4
gpt4 key购买 nike

df:

id flag  year  amt
1 'Y' 2016 100
1 'Y' 2017 200
1 'Y' 2018 100
2 NaN 2016 100
2 'Y' 2017 200

我正在以yearamt为中心。

预期输出:

id flag 2016   2017   2018
1 'Y' 100.0 200.0 100.0
2 NaN 100.0 NaN NaN
2 'Y' NaN 200.0 NaN

代码:

t = df.pivot_table(index['id','flag'],columns='year',values='amt').reset_index()

实际输出我通过上面的代码得到:

id flag 2016   2017   2018
1 'Y' 100.0 200.0 100.0
2 'Y' NaN 200.0 NaN

我不知道为什么pivot会过滤掉dfflagNaN的记录。我应该怎么做才能得到预期的结果?

最佳答案

您可以使用set_index/unstack:

In [51]: df.set_index(['id','flag','year'])['amt'].unstack('year').reset_index()
Out[51]:
year id flag 2016 2017 2018
0 1 Y 100.0 200.0 100.0
1 2 NaN 100.0 NaN NaN
2 2 Y NaN 200.0 NaN

set_index(['id', 'flag', 'year'])idflagyear 列移至 MultiIndexunstack('year')将 MultiIndex 的年份级别移动到列索引中。与pivot_table不同,索引级别中的NaN值被保留。

关于python - hub_table 没有给出预期的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57761189/

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