Удалить выбросы из определенного столбца

Вы можете использовать php на сервере для запуска любых команд sql, которые вам нужны, и просто перейти к php-странице с устройства.

2
задан Rahul Sharma 20 March 2019 в 07:39
поделиться

2 ответа

если у вас есть хорошие данные, используйте threshold = 0.5

threshold = 1
print(df[df['shiper_RFQ'].apply(lambda x: np.abs(x - df['shiper_RFQ'].mean()) / df['shiper_RFQ'].std() < threshold)])

и этот

 df = df[ np.abs(df['shiper_RFQ'] - df['shiper_RFQ'].mean()) / df['shiper_RFQ'].std() < threshold]

оба будут иметь одинаковый результат

вывод

[112 ]

если вы печатаете, вы можете увидеть аномалию

print(df['shiper_RFQ'].apply(lambda x: np.abs(x - df['shiper_RFQ'].mean()) / df['shiper_RFQ'].std()))

0    0.084182
1    0.010523
2    0.468261
3    0.268329
4    1.594192
5    1.757294
6    0.268329
0
ответ дан Nihal 20 March 2019 в 07:39
поделиться

Вы можете определить выбросы, найдя строки, которые отличаются от среднего значения столбца более чем на 1,5 стандартных отклонения (или любого другого значения отсечения, которое вы выберете):

df['outliers'] = 0
df.loc[(df.shiper_RFQ - df.shiper_RFQ.mean()).abs() > 1.5*df.shiper_RFQ.std(), 'outliers'] = 1
print(df)
   Supplier_ID  shiper_RFQ  outliers
0         2305        5000         0
1         2309        5200         0
2         2305        6500         0
3         2307        4500         0
4         2301         900         1
5         2302       10000         1
6         2306        4500         0

Тогда вы можете сохраните их в другом фрейме данных и удалите их из оригинала:

df2 = df[df.outliers == 1].reset_index(drop=True)
df = df[df.outliers == 0].reset_index(drop=True)
print(df2)
print(df)
   Supplier_ID  shiper_RFQ  outliers
0         2301         900         1
1         2302       10000         1

   Supplier_ID  shiper_RFQ  outliers
0         2305        5000         0
1         2309        5200         0
2         2305        6500         0
3         2307        4500         0
4         2306        4500         0
0
ответ дан Nathaniel 20 March 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: