Установить значение ячейки на основе сравнения двух разных ячеек - PullRequest
1 голос
/ 11 июля 2019

Мне нужно сравнить две строки из столбца и вывести его в другой столбец. В некотором смысле у меня есть окончательный счет в игре с каждой командой, перечисленной в ряду с другими показателями. Я хочу создать столбец с надписью победителя "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' нет атрибута 'где' а также ValueError: Условный массив должен иметь ту же форму, что и self

Tm  H/A  Final W/L/T
SFO   A     16     T
NYG   H     13     T
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 для линии SFO и L для линии NYG под W / L / T.

1 Ответ

0 голосов
/ 11 июля 2019

Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...