Вы можете сделать это с помощью запросов панд, а не с помощью цикла и блока if
.Использование запросов Pandas имеет дополнительное преимущество, заключающееся в том, что он намного эффективнее, чем использование цикла.Чтобы заменить значения, удовлетворяющие вашему условию, вы можете использовать присваивание с .loc
.
. Вот пример:
import pandas as pd
import numpy as np
df = pd.read_excel('d:gps/9-20-32-36574.xlsx')
df.sationUuid.fillna(method='bfill',inplace=True)
df.dropna(subset=['stationUuid'],inplace=True)
mask = (df.stationUuid == 1) & (df.busSpeed < 3)
df.loc[mask, 'busSpeed'] = np.nan
Так что, если df
выглядит следующим образом после чтения из Excel:
stationUuid busSpeed
1 1.5
2 1
1 100
3 10
Тогда df
будет выглядеть следующим образом после остальной части сценария:
stationUuid busSpeed
1 NaN
2 1
1 100
3 10