gpt4 book ai didi

python - 如何删除第一级索引,然后将剩余的索引值与 pd DataFrame 的自定义逻辑合并?

转载 作者:行者123 更新时间:2023-12-01 08:29:50 34 4
gpt4 key购买 nike

假设我有一个像这样的 MultiIndex DataFrame:

                             price     volume
year product city
2010 A LA 10 7
B SF 7 9
C NY 7 6
LA 18 21
SF 4 8
2011 A LA 13 5
B SF 2 4
C NY 9 3
SF 2 0

我想做一个有点复杂的合并,其中 DataFrame 索引的第一级(年份)被删除,并且 DataFrame 中现在第一级索引(产品)中的重复项根据一些自定义逻辑进行合并。在这种情况下,我希望能够将价格列设置为使用 2010 年外部索引中的值,将交易量列设置为使用 2011 年外部索引中的值,但我想要一个可以应用于更多的通用解决方案列(如果存在)。

最终的 DataFrame 看起来像这样,其中价格值是来自 2010 年指数的值,成交量值是来自 2011 年指数的值,其中缺失值用 NaN 填充。

                      price     volume
product city
A LA 10 5
B SF 7 4
C NY 7 3
LA 18 NaN
SF 4 0

最佳答案

您可以通过 DataFrame.xs 按一级选择然后concat :

df = pd.concat([df.xs(2010)['price'], df.xs(2011)['volume']], axis=1)

也可以使用loc :

df = pd.concat([df.loc[2010, 'price'], df.loc[2011, 'volume']], axis=1)
<小时/>
print (df)
price volume
product city
A LA 10 5.0
B SF 7 4.0
C LA 18 NaN
NY 7 3.0
SF 4 0.0

关于python - 如何删除第一级索引,然后将剩余的索引值与 pd DataFrame 的自定义逻辑合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53954981/

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