我想将信息连接到多索引的主索引。更具体地说,我想在仅引用产品代码的主索引列中合并导入产品的产品描述。

考虑以下代码...

index = [('A', 'x'), ('A', 'y'),
         ('B', 'z'), ('B', 'w'),
         ('C', 's'), ('C', 'q')]

Numeric = [33871648, 37253956,
           18976457, 19378102,
           20851820, 25145561]

index = pd.MultiIndex.from_tuples(index)


pop = pd.Series(Numeric, index=index)
pop.index.names = ['Imported Product', 'Manufactured Product']


print(pop)


当前结果:

Imported Product  Manufactured Product
A                 x                       33871648
                  y                       37253956
B                 z                       18976457
                  w                       19378102
C                 s                       20851820
                  q                       25145561


考虑我有一个单独的数据框,其中包含以下信息...

  Imported Product    Product Description
   A                  Widget 1
   B                  Widget 2
   C                  Widget 3


所需结果:

Imported Product  Manufactured Product
A - Widget 1      x                       33871648
                  y                       37253956
B - Widget 2      z                       18976457
                  w                       19378102
C - Widget 3      s                       20851820
                  q                       25145561


这里的核心思想是利用第一列中创建的额外空白。在我的真实数据中,一种进口产品可能会进入100多种制成品中,因此,我宁愿按照此处要求的方式进行处理,而不是添加新列来带来进口产品说明,因为我的多指标也已经许多列。

上面我只是提到产品描述是要连接到主索引中的信息项...在我的真实数据中,还有其他我想使用的信息,包括python中计算所得的信息。

提前致谢!!!

最佳答案

set_index + map + set_levels

通过您的mapper数据框创建一个映射,然后使用set_levels

s = mapper.set_index('Imported Product')['Product Description']

new_labels = pop.index.levels[0] + '-' + pop.index.levels[0].map(s.get)
pop.index.set_levels(new_labels, level=0, inplace=True)

print(pop)

Imported Product  Manufactured Product
A-Widget1         x                       33871648
                  y                       37253956
B-Widget2         z                       18976457
                  w                       19378102
C-Widget3         s                       20851820
                  q                       25145561
dtype: int64

关于python - 将字符串连接到从另一个数据帧映射的MultiIndex级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53318411/

10-09 07:25
查看更多