gpt4 book ai didi

python - 加入多索引的pandas系列

转载 作者:行者123 更新时间:2023-12-01 02:54:39 24 4
gpt4 key购买 nike

如何加入由 (A, B) 多重索引的 Series A 和由 A 索引的 Series B

最佳答案

目前唯一的方法是将这些指数置于一个共同的基础上——例如将 series_A MultiIndex 的 B 级别移动到列,以便 series_Aseries_B 仅通过 A:

import pandas as pd

series_A = pd.Series(1, index=pd.MultiIndex.from_product([['A1', 'A4'],['B1','B2']], names=['A','B']), name='series_A')
# A B
# A1 B1 1
# B2 1
# A4 B1 1
# B2 1
# Name: series_A, dtype: int64

series_B = pd.Series(2, index=pd.Index(['A1', 'A2', 'A3'], name='A'), name='series_B')
# A
# A1 2
# A2 2
# A3 2
# Name: series_B, dtype: int64

tmp = series_A.to_frame().reset_index('B')
result = tmp.join(series_B, how='outer').set_index('B', append=True)
print(result)

产量

        series_A  series_B
A B
A1 B1 1.0 2.0
B2 1.0 2.0
A2 NaN NaN 2.0
A3 NaN NaN 2.0
A4 B1 1.0 NaN
B2 1.0 NaN
<小时/>

加入它们的另一种方法是从 series_A 中取消堆叠 B 级别:

In [215]: series_A.unstack('B').join(series_B, how='outer')
Out[215]:
B1 B2 series_B
A
A1 1.0 1.0 2.0
A2 NaN NaN 2.0
A3 NaN NaN 2.0
A4 1.0 1.0 NaN

unstackB 索引级别移动到列索引。因此主题是尽管结果不同,但相同(将索引置于共同的基础上)。

关于python - 加入多索引的pandas系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44339450/

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