Python 根据两个不同单元格的比较设置单元格值
我需要比较一列中的两行并将其输出到另一列。从某种意义上说,我拥有一场比赛的最终得分,每支球队都列在其他统计数据的行列中。我想创建一个列,将获胜者标记为“W”,而失败者标记为“L” 我试过了Python 根据两个不同单元格的比较设置单元格值,python,python-3.x,pandas,Python,Python 3.x,Pandas,我需要比较一列中的两行并将其输出到另一列。从某种意义上说,我拥有一场比赛的最终得分,每支球队都列在其他统计数据的行列中。我想创建一个列,将获胜者标记为“W”,而失败者标记为“L” 我试过了 df2.iloc[0,3]。其中(df2.iloc[0,2]>df2.iloc[1,2],'W',inplace=True) 和 df2.iloc[0,3]=df2.where(df2.iloc[0,2]>df2.iloc[1,2],df.iloc[0,3]='W',inplace=True) 在其他尝试中,
df2.iloc[0,3]。其中(df2.iloc[0,2]>df2.iloc[1,2],'W',inplace=True)
和
df2.iloc[0,3]=df2.where(df2.iloc[0,2]>df2.iloc[1,2],df.iloc[0,3]='W',inplace=True)
在其他尝试中,我遇到的两个最常见的错误是:
AttributeError:“str”对象没有属性“where”
和
ValueError:数组条件必须与self的形状相同
Tm H/A Final W/L/T
SFO A 16 T
NYG H 13 T
最终,预期结果应给出SFO线的W和W/L/T下NYG线的L。使用
np。其中
获取W
和L
,以及if
语句,以检查其是否平局,是否分配T
:
df['W/L/T'] = np.where(df['Final'] > df['Final'].shift(-1), 'W', 'L')
if (df['Final'].shift() == df['Final']).any():
df['W/L/T'] = 'T'
print(df)
输出:
Tm H/A Final W/L/T
0 SFO A 16 W
1 NYG H 13 L
使用
np.where
获取W
和L
,并使用if
语句检查是否为平局,如果为平局,则分配T
:
df['W/L/T'] = np.where(df['Final'] > df['Final'].shift(-1), 'W', 'L')
if (df['Final'].shift() == df['Final']).any():
df['W/L/T'] = 'T'
print(df)
输出:
Tm H/A Final W/L/T
0 SFO A 16 W
1 NYG H 13 L
成功了!我不熟悉.shift(),现在有一些阅读要做@jobond83很乐意帮忙:-)真管用!我不熟悉.shift(),现在有一些阅读要做@jobond83乐意帮忙:-)