Удвойте значения столбца, когда другой столбец равен указанному значению - PullRequest
1 голос
/ 07 октября 2019

Я хочу удвоить значение в столбце расстояния в строках, имеющих значение «односторонний» в столбце hike_type. Я перебираю df и нахожу все подходящие строки, но у меня возникают проблемы с запоминанием умножения.

Это находит правильные строки, но изменение не вступит в силу

for index, row in df.iterrows():
    if row['hike_type'] == 'one-way':
        row['distance'] * 2

Это не сработало либо

for index, row in df.iterrows():
    if row['hike_type'] == 'one-way':
       row['distance'] = row['distance'] * 2

по некоторым причинам, когда я делаю(ниже) он печатает то, что я хочу.

for index, row in df.iterrows():
    if row['hike_type'] == 'one-way':
       print(row['distance'] * 2)

1 Ответ

0 голосов
/ 07 октября 2019

IIUC, то, что вы хотите, может быть достигнуто только одной строкой, как показано ниже

df['distance']= np.where (df['hike_type'] == 'one-way', df['distance'].astype(int)*2,df['distance'])

ИЛИ вы можете использовать df.loc как показано ниже

df.update(df.loc[df['hike_type'] == 'one-way','distance'].astype(int)*2)

ИЛИ

df.update(df[df['hike_type'] == 'one-way']['distance'].astype(int)*2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...