首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据两个不同单元格的比较设置单元格的值

根据两个不同单元格的比较设置单元格的值
EN

Stack Overflow用户
提问于 2019-07-11 08:35:42
回答 1查看 37关注 0票数 1

我需要比较一列中的两行,并将其输出到另一列。在某种意义上,我有一场比赛的最终得分,每支球队与其他统计数据列在一行上。我想创建一个列,将胜利者标记为"W“,将失败者标记为"L”。

我尝试过df2.iloc[0, 3].where(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:数组条件必须与自身的形状相同

代码语言:javascript
复制
Tm  H/A  Final W/L/T
SFO   A     16     T
NYG   H     13     T
代码语言:javascript
复制
df1 = pd.read_csv('20020905_nyg_scoring.csv', header = 0, index_col = 0)
df1.drop(['Detail', 'Quarter', 'Time', 'Tm'], axis = 1, inplace = True)

df2 = pd.read_csv('20020905_nyg_team_stats.csv', header = 0, index_col = 1)
df2.drop('Unnamed: 0', axis = 1, inplace = True)
df2 = df2.transpose()
df2.reset_index(inplace = True)
df2.rename(columns = {'index':'Tm'}, inplace = True)
df2.insert(1, 'H/A', ['A', 'H'])
df2.insert(2, 'Final', (df1.iloc[-1, 0], df1.iloc[-1, 1]))
df2.insert(3, 'W/L/T', 'T')
pd.to_numeric(df2['Final'])
df2.iloc[0, 3].where(df2.iloc[0, 2] > df2.iloc[1, 2], 'W', inplace = True)
print(df2)

最终,预期的结果应该会在W/L/T下为SFO线路提供W,为NYG线路提供L。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 08:43:21

使用np.where获取WL,使用if语句检查是否为tie,如果是,则分配T

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
    Tm H/A  Final W/L/T
0  SFO   A     16     W
1  NYG   H     13     L
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56980228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档