如何在 python pandas 中找到具有多个索引的两个数据框列中的最小值?

How do i find the minimum of two dataframe columns with multi-indices in python pandas?

我有两个 pandas 数据帧 df1df2df1 有一个多索引:

                  A   
instance index
a        0        10 
         1        11  
         2        7
b        0        8
         1        9
         2        13

框架df2df1具有相同的一级索引:

              B   
instance 
a             5 
b             12

我想做两件事:

1) 将df2中的值分配给df1

的所有行
                  A    B
instance index
a        0        10   5
         1        11   5
         2        7    5
b        0        8    12
         1        9    12
         2        13   12

2) 创建一个数据框对象,表示 AB 中的最小值,而不像上面那样连接两个数据框:

min(df1,df2):
                  min   
instance index
a        0        5   
         1        5   
         2        5   
b        0        8    
         1        9    
         2        12   

对于您的第一个请求,您可以使用 DataFrame.join:

>>> df1.join(df2)
                 A   B
instance index        
a        0      10   5
         1      11   5
         2       7   5
b        0       8  12
         1       9  12
         2      13  12

对于第二个对象,您只需对该对象调用 min(axis=1)

>>> df1.join(df2).min(axis=1).to_frame("min")
                min
instance index     
a        0        5
         1        5
         2        5
b        0        8
         1        9
         2       12