如何根据 pandas 中的 if-else 条件从元组索引中提取字符串?

How to extract a string from tuple index based on if-else condition in pandas?

我的数据框df.shape (105,6)

import pandas as pd
import io
import ast

     """  Ccom  Wcom  Lcom  Dcom  Total    Winner
(A1, A2)  -1.0   1.0   1.0   0.0    1.0    (A1, A2) 
(A1, A3)  -1.0  -1.0   1.0   1.0    0.0    (A1, A3)
(A1, A4)   1.0  -1.0   1.0   1.0    2.0    (A1, A4)
(A1, A5)  -1.0  -1.0  -1.0   1.0   -2.0    (A1, A5)
(A1, A6)  -1.0  -1.0   0.0   1.0   -1.0    (A1, A6) """

我想要基于条件的数据框 Winner 列中的索引名称(即元组)

if(df.Total > 0) --> Winner left i.e Winner = A1
elif(df.Total < 0) --> Winner right one i.e Winner = A2
elif(df.Total == 0 ) --> Winner='Draw' And keep a count of draw in both A1 and A2

输出应该是这样的:

           Ccom  Wcom  Lcom  Dcom  Total    Winner
(A1, A2)  -1.0   1.0   1.0   0.0    1.0       A1 
(A1, A3)  -1.0  -1.0   1.0   1.0    0.0      Draw
(A1, A4)   1.0  -1.0   1.0   1.0    2.0       A1
(A1, A5)  -1.0  -1.0  -1.0   1.0   -2.0       A5
(A1, A6)  -1.0  -1.0   0.0   1.0   -1.0       A6

通过索引 [0][1]:

在索引元组中使用 numpy.select 和 select 值
m1 = df.Total > 0
m2 = df.Total < 0

df['Winner'] = np.select([m1, m2], [df.index.str[0], df.index.str[1]], default='Draw')
print (df)
         Ccom  Wcom  Lcom  Dcom  Total Winner
(A1,A2)  -1.0   1.0   1.0   0.0    1.0     A1
(A1,A3)  -1.0  -1.0   1.0   1.0    0.0   Draw
(A1,A4)   1.0  -1.0   1.0   1.0    2.0     A1
(A1,A5)  -1.0  -1.0  -1.0   1.0   -2.0     A5
(A1,A6)  -1.0  -1.0   0.0   1.0   -1.0     A6